我正在考虑把一个Django的Web应用程序的virtualenv,我正在我的git仓库里为应用程序。 这似乎是一个简单的方法来保持部署的简单和容易。 我有什么理由不这样做? 我对virtualenv完全陌生,所以很有可能这是一个非常愚蠢的问题。
有没有类似的Python实用程序virtualenv ? 基本上它允许你将Python包安装到一个沙盒环境中,所以easy_install django不会进入你的系统范围的站点包目录,它会进入virtualenv创build的目录。 例如: $ virtualenv test New python executable in test/bin/python Installing setuptools…cd ………done. $ cd test/ $ source bin/activate (test)$ easy_install tvnamer Searching for tvnamer Best match: tvnamer 0.5.1 Processing tvnamer-0.5.1-py2.5.egg Adding tvnamer 0.5.1 to easy-install.pth file Installing tvnamer script to /Users/dbr/test/bin Using /Library/Python/2.5/site-packages/tvnamer-0.5.1-py2.5.egg Processing dependencies for tvnamer Finished processing dependencies for […]
我试图从cron运行Djangopipe理命令。 我正在使用virtualenv保持我的项目沙箱。 我在这里和其他地方看到了一些示例,显示了从virtualenv中运行pipe理命令的过程: 0 3 * * * source /home/user/project/env/bin/activate && /home/user/project/manage.py command arg 但是,即使syslog在任务启动时显示一个条目,该任务也不会实际运行(脚本的日志文件为空)。 如果我从shell手动运行该行,它按预期工作。 我现在可以通过cron运行命令的唯一方法是将命令分解并放在一个笨笨的bash包装器脚本中: #!/bin/sh source /home/user/project/env/bin/activate cd /home/user/project/ ./manage.py command arg 请指教我有什么不同。 我错过了什么? 谢谢 编辑: ars想出了一个命令的组合: 0 3 * * * cd /home/user/project && /home/user/project/env/bin/python /home/user/project/manage.py command arg 至less在我的情况下,调用virtualenv的激活脚本什么也没做。 这个工程,等等。
我在一个virtualenv中为我的Django项目使用带有需求文件的pip。 我试图升级一些软件包,特别是Django本身,而且我得到一个有关源代码冲突的错误: Source in `<virtualenv`>/build/Django has version 1.2.3 that conflicts with Django==1.2.4 (from -r requirements/apps.txt (line 3)) 这是在我的需求文件中将Django的版本号从1.2.3更新到1.2.4之后。 我正在使用这个命令来实际升级: pip –install –upgrade -E `<virtualenv dir`> –requirement `<requirements file`> 我找不到任何触发总包重新下载的标志。 我什至尝试运行一个卸载命令,然后安装,但没有骰子。 也许我错过了什么?
考虑到可以使用pip和virtualenv安装的Python(2.X)包的名称,是否有任何方法可以找出pip可以安装的所有可能版本的列表? 现在是试错。 我试图为第三方库安装一个版本,但是最新的版本太新了,所以出现了不兼容的变更。 所以我想以某种方式列出所有pip知道的版本,以便我可以testing它们。
我使用以下命令创build了一个环境: virtualenv venv –distribute 我不能删除它与以下命令: rmvirtualenv venv – 这是virtualenvwrapper的一部分,如下面的答案中提到的virtualenvwrapper 我在我目前的目录上做了一个ls ,我仍然看到venv 我可以删除它的唯一方法似乎是: sudo rm -rf venv 请注意,环境不活跃。 我正在运行Ubuntu 11.10。 有任何想法吗? 我试过重新启动我的系统无济于事。
我可以更新pip托pipe的软件包,但是如何更新pip本身? 根据pip –version ,我现在有点1.1安装在我的virtualenv,我想更新到最新版本。 那是什么命令? 我需要使用分发还是有一个本地PIP或virtualenv命令? 我已经尝试过pip update和pip update pip没有成功。
使用virtualenv ,我使用默认版本的Python(2.7)运行我的项目。 在一个项目中,我需要使用Python 3.4。 我用brew install python3在我的Mac上安装它。 现在,我如何创build一个使用新版本的virtualenv? 比如sudo virtualenv envPython3 如果我尝试: virtualenv -p python3 test 我得到: Running virtualenv with interpreter /usr/local/bin/python3 Using base prefix '/usr/local/Cellar/python3/3.4.0_1/Frameworks/Python.framework/Versions/3.4' New python executable in test/bin/python3.4 Also creating executable in test/bin/python Failed to import the site module Traceback (most recent call last): File "/Users/user/Documents/workspace/test/test/bin/../lib/python3.4/site.py", line 67, in <module> import os […]
我使用的是virtualenv和virtualenvwrapper。 我可以使用workon命令在virtualenv之间切换。 me@mymachine:~$ workon env1 (env1)me@mymachine:~$ workon env2 (env2)me@mymachine:~$ workon env1 (env1)me@mymachine:~$ 但是,如何退出所有虚拟机并再次运行我的真机? 现在,我必须回到这个唯一的方式 me@mymachine:~$ 是退出shell并开始一个新的。 这有点烦人。 有没有一个“没有”的命令,如果是的话,那是什么? 如果这样的命令不存在,我将如何去创build它?
有没有办法升级在virtualenv中使用的Python的版本(例如,如果一个错误修复发布出来)? 我可以pip freeze –local > requirements.txt然后删除目录和pip install -r requirements.txt但这需要大量的重新安装大型库,例如numpy,我用了很多。 我可以看到,从2.6 – > 2.7升级,这是一个优势,但2.7.x – > 2.7.y怎么样? 谢谢