python教程—Python virtualenv问题-Python实用宝典

python教程—Python virtualenv问题

我在Windows XP上使用VirtualEnv。我在想如果我有我的大脑缠绕在它正确:我跑virtualenv ENV C:WINDOWSsystem32ENV.创建然后我改变了我的路径变量包括C:WINDOWSsystem32ENVScripts代替C: Python27 脚本。然后,我签出Django C:WINDOWSsystem32ENVLib网站 django-trunk更新我PYTHON_PATH变量来点新的Django目录,并继续easy_install其他事情(当然进入我的新C:WINDOWSsystem32ENVLib网站目录)。

我在Windows XP上使用VirtualEnv。我想知道我的大脑是否正确地围绕着它:

我跑virtualenv ENV C:WINDOWSsystem32ENV.创建然后我改变了我的路径变量包括C:WINDOWSsystem32ENVScripts代替C: Python27 脚本。然后,我签出Django C:WINDOWSsystem32ENVLib网站 django-trunk更新我PYTHON_PATH变量来点新的Django目录,并继续easy_install其他事情(当然进入我的新C:WINDOWSsystem32ENVLib网站目录)。

我明白为什么我应该使用VirtualEnv,这样我就可以在同一台机器上运行多个版本的Django和其他,但这是否意味着要在不同环境之间切换,我基本上必须更改PATH和PYTHON_PATH变量?我从开发一个Django项目开始在ENV环境中使用Django 1.2然后改变我的路径这样我就可以使用一个名为ENV2的环境它有Django的开发版本?

基本上就是这样,还是有更好的方法来自动完成所有这些操作(我可以用Python代码更新我的路径,但这需要我在应用程序中编写特定于机器的代码)?

此外,这个过程与在Linux上使用VirtualEnv相比如何(我是Linux的初学者)。

回答

通常,virtualenv在当前目录中创建环境。除非你打算创建虚拟环境C:Windowssystem32出于某种原因,我将使用一个不同的目录环境。

您不应该需要弄乱路径:使用activate脚本(在< env > Scripts中)来确保Python可执行文件和路径是特定于环境的。完成此操作后,命令提示符将更改为指示环境。然后可以调用easy_install,以这种方式安装的任何东西都会安装到这个环境中。使用deactivate将一切恢复到激活之前的状态。

例子:

    c:Temp>virtualenv myenv New python executable in myenvScriptspython.exe Installing setuptools..................done. c:Temp>myenvScriptsactivate (myenv) C:Temp>deactivate C:Temp>

注意,我不需要为deactivate指定路径——activate为您指定路径,这样当激活“Python”时,它将在virtualenv中运行Python,而不是在您的系统Python中运行。(试试-做一个导入系统;sys。前缀,它应该打印环境的根。)

您可以激活一个新环境来在环境/项目之间切换,但是您需要指定激活的整个路径,以便它知道要激活哪个环境。您不应该显式地使用PATH或PYTHONPATH。

如果使用Windows Powershell,那么可以使用包装器。在Linux上,virtualenvwrapper(链接指向指向Powershell的一个端口)使使用virtualenv变得更加容易。

Update:并不完全错误,但可能不完全符合virtualenv的精神。您可以采取另一种方法:例如,如果您在virtualenv中安装Django和站点所需的其他任何东西,那么您就可以在启动virtualenv的项目目录中工作(您正在开发站点)。因为它是被激活的,所以您的Python将找到Django,并且您将easy_install安装到虚拟环境中的任何其他东西:而且因为您在您的项目目录中工作,所以您的项目文件对Python也是可见的。

进一步更新:您应该能够使用pip、分发而不是setuptools,以及使用virtualenv安装纯python setup.py。在安装某个环境之前,确保您已经激活了该环境。

​Python实用宝典 (pythondict.com)
不只是一个宝典
欢迎关注公众号:Python实用宝典

本文由 Python实用宝典 作者:Python实用宝典 发表,其版权均为 Python实用宝典 所有,文章内容系作者个人观点,不代表 Python实用宝典 对观点赞同或支持。如需转载,请注明文章来源。
0

发表评论