我在Windows XP上使用VirtualEnv。我想知道我的大脑是否正确地围绕着它:
我运行了virtualenv ENV
,它创建了C:\WINDOWS\system32\ENV
。然后我将PATH
变量改为包含C:\WINDOWS\system32\ENV\Scripts
,而不是C:\Python27\Scripts
。然后,我将Django签入C:\WINDOWS\system32\ENV\Lib\site-packages\django-trunk
,更新我的PYTHON_PATH
变量以指向新的Django目录,并继续easy_install
其他内容(当然,这些内容会进入我的新C:\WINDOWS\system32\ENV\Lib\site-packages
目录)。
我理解为什么我应该使用VirtualEnv,这样我就可以在同一台机器上运行多个版本的Django和其他库,但这是否意味着要在环境之间切换,我必须基本上更改我的PATH
和PYTHON_PATH
变量?所以,我从开发一个Django项目开始,它在一个名为ENV
的环境中使用Django 1.2,然后更改我的PATH
,这样我就可以使用一个名为ENV2
的环境,这个环境有Django的开发版本?
基本上是这样,还是有更好的方法来自动完成这一切(我可以用Python代码更新路径,但这需要我在应用程序中编写特定于机器的代码)?
另外,这个过程与在Linux上使用VirtualEnv相比如何(我是Linux的初学者)。
在Windows上,我安装了python 3.7,虽然在Powershell中运行
Set-ExecutionPolicy Unrestricted
并将设置更改为“全部是”后,它在Powershell中工作,但仍然无法使用./Scripts/activate
从Gitbash激活virtualenv
。我不喜欢Powershell,我喜欢使用Gitbash,所以要激活Gitbash中的
virtualenv
,首先导航到项目文件夹,使用ls
列出文件夹的内容,并确保看到“脚本”。使用cd Scripts
将目录更改为“脚本”,进入“脚本”路径后,使用. activate
激活virtualenv
。别忘了点后的空格。是的,基本上这就是virtualenv所做的,这就是
activate
命令的作用,从文档here:因此,您应该只使用
activate
命令,该命令将为您执行所有这些操作:通常
virtualenv
在当前目录中创建环境。除非出于某种原因您打算在C:\Windows\system32
中创建虚拟环境,否则我将为环境使用不同的目录。您不需要处理路径:使用
activate
脚本(在<env>\Scripts
中)确保Python可执行文件和路径是特定于环境的。完成此操作后,命令提示符将更改以指示环境。然后您可以调用easy_install,以这种方式安装的任何内容都将安装到此环境中。使用deactivate
将所有内容设置回激活前的状态。示例:
注意我不需要为
deactivate
-activate
指定路径,这样当激活“Python”时将在virtualenv中运行Python,而不是在系统Python中。(尝试一下-做一个import sys; sys.prefix
,它应该会打印出您环境的根目录。)您可以激活一个新的环境来在环境/项目之间切换,但是您需要为
activate
指定整个路径,以便它知道要激活哪个环境。您不应该显式地处理PATH或PYTHONPATH。如果使用Windows Powershell,则可以利用wrapper。在Linux上,
virtualenvwrapper
(链接指向Powershell的端口)使使用virtualenv
变得更加容易。更新:不正确,确切地说,但可能不完全符合
virtualenv
的精神。您可以采用不同的策略:例如,如果您在virtualenv中安装了Django和站点所需的其他任何东西,那么您可以在项目目录(开发站点的位置)中激活virtualenv。因为它是激活的,所以Python会找到Django和其他任何您很容易安装到虚拟环境中的东西:并且因为您在项目目录中工作,所以Python也可以看到您的项目文件。进一步更新:您应该能够使用
pip
,distribute
而不是setuptools
,只需使用python setup.py install
和virtualenv
。在安装某个环境之前,请确保已激活该环境。相关问题 更多 >
编程相关推荐