Python 虚拟环境问题
- 2024-10-24 08:50:00
- admin 原创
- 69
问题描述:
我在 Windows XP 上使用 VirtualEnv。我想知道我是否理解正确:
我运行virtualenv ENV
并创建了C:WINDOWSsystem32ENV
。然后我将PATH
变量更改为包含C:WINDOWSsystem32ENVScripts
而不是C:Python27Scripts
。然后,我将 Django 签出到C:WINDOWSsystem32ENVLibsite-packagesdjango-trunk
,更新我的PYTHON_PATH
变量以指向新的 Django 目录,并继续执行easy_install
其他操作(当然会进入我的新C:WINDOWSsystem32ENVLibsite-packages
目录)。
我理解为什么我应该使用 VirtualEnv,这样我就可以在同一台机器上运行多个版本的 Django 和其他库,但这是否意味着要在环境之间切换,我必须基本上更改我的PATH
和PYTHON_PATH
变量?那么,我从开发一个在名为的环境中使用 Django 1.2 的 Django 项目开始ENV
,然后更改我的PATH
和等,以便我可以使用具有ENV2
Django 开发版本的名为的环境?
基本上就是这样吗,或者有没有更好的方法来自动完成所有这些操作(我可以在 Python 代码中更新我的路径,但这需要我在应用程序中编写特定于机器的代码)?
另外,这个过程与在 Linux 上使用 VirtualEnv 相比如何(我是 Linux 的初学者)。
解决方案 1:
通常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”时,它将在虚拟环境中运行 Python,而不是您的系统 Python。(尝试一下 - 执行此操作import sys; sys.prefix
,它应该会打印出您的环境的根目录。)
您可以激活一个新环境来在环境/项目之间切换,但您需要指定整个路径,以便activate
它知道要激活哪个环境。您永远不需要明确地处理 PATH 或 PYTHONPATH。
如果您使用 Windows Powershell,那么您可以利用包装器。在 Linux 上,virtualenvwrapper
(链接指向 Powershell 的端口)使生活变得virtualenv
更加轻松。
更新:确实没错,但可能不完全符合 的精神virtualenv
。您可以采取不同的策略:例如,如果您在虚拟环境中安装了 Django 和站点所需的任何其他内容,那么您可以在激活虚拟环境的情况下在项目目录(您正在开发站点的位置)中工作。由于已激活虚拟环境,您的 Python 会找到 Django 和您轻松安装到虚拟环境中的任何其他内容:并且由于您正在项目目录中工作,因此 Python 也可以看到您的项目文件。
进一步更新:您应该能够使用pip
,distribute
而不是setuptools
,并且只需python setup.py install
使用virtualenv
。只需确保在安装某些东西之前已激活环境即可。
解决方案 2:
是的,基本上这就是 virtualenv 所做的,这就是命令的用途,来自此处的activate
文档:
激活脚本
在新创建的虚拟环境中,将会有一个 bin/activate shell 脚本,或者在 Windows 上有一个 Scripts/activate.bat 批处理文件。
这会将您的 $PATH 更改为指向 virtualenv bin/ 目录。与 workingenv 不同,这就是它所做的一切;这很方便。但是,如果您使用完整路径(如 /path/to/env/bin/python script.py),则无需先激活环境。您必须使用 source,因为它会就地更改环境。激活环境后,您可以使用函数 deactivate 撤消更改。
激活脚本还将修改你的 shell 提示符以指示哪个环境当前处于活动状态。
因此您只需使用activate
命令即可为您完成所有这些操作:
> path oenvinactivate.bat
解决方案 3:
在 Windows 上,我安装了 python 3.7,但仍然无法virtualenv
从 Gitbash激活,./Scripts/activate
尽管在Set-ExecutionPolicy Unrestricted
Powershell 中运行并将设置更改为“全部是”后它可以从 Powershell 中工作。
我不喜欢 Powershell,我喜欢使用 Gitbash,因此要virtualenv
在 Gitbash 中激活,首先导航到您的项目文件夹,使用ls
列出文件夹的内容并确保看到“Scripts”。使用 将目录更改为“Scripts” cd Scripts
,一旦您进入“Scripts”路径,使用. activate
激活virtualenv
。不要忘记点后的空格。
解决方案 4:
创建虚拟环境后,从 python 的脚本文件夹复制 activate.bat 文件并粘贴到您的环境中,然后从虚拟环境中打开 cmd 并运行 activate.bat 文件。在此处输入图像描述
解决方案 5:
在我的项目 wsgi.py 文件中我有这个代码(它适用于 Windows 中的 virtualenv、django、apache2 和 python 3.4)
import os
import sys
DJANGO_PATH = os.path.join(os.path.abspath(os.path.dirname(__file__)),'..')
sys.path.append(DJANGO_PATH)
sys.path.append('c:/myproject/env/Scripts')
sys.path.append('c:/myproject/env/Lib/site-packages')
activate_this = 'c:/myproject/env/scripts/activate_this.py'
exec(open(activate_this).read())
from django.core.wsgi import get_wsgi_application
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "myproject.settings")
application = get_wsgi_application()
在虚拟主机文件conf中我有
<VirtualHost *:80>
ServerName mysite
WSGIScriptAlias / c:/myproject/myproject/myproject/wsgi.py
DocumentRoot c:/myproject/myproject/
<Directory "c:/myproject/myproject/myproject/">
Options +Indexes +FollowSymLinks +MultiViews
AllowOverride All
Require local
</Directory>
</VirtualHost>
解决方案 6:
在 Windows 中:
按 Windows(或 Windows+R),然后键入“cmd”:以正常模式运行命令提示符。
cd C:Users/userDesktopUserProjectName> pip install virtualenv
要创建 venv,请运行此命令
virtualenv -p python3 venv
激活虚拟环境
venvScriptsactivate
它看起来像这样
(venv) C:Users/userDesktopUserDjangoProject>
然后运行
pip install -r requirements.txt
显示已安装的包
pip list
- 2024年20款好用的项目管理软件推荐,项目管理提效的20个工具和技巧
- 2024年开源项目管理软件有哪些?推荐5款好用的项目管理工具
- 项目管理软件有哪些?推荐7款超好用的项目管理工具
- 项目管理软件哪个最好用?盘点推荐5款好用的项目管理工具
- 项目管理软件有哪些最好用?推荐6款好用的项目管理工具
- 项目管理软件有哪些,盘点推荐国内外超好用的7款项目管理工具
- 2024项目管理软件排行榜(10类常用的项目管理工具全推荐)
- 项目管理软件排行榜:2024年项目经理必备5款开源项目管理软件汇总
- 2024年常用的项目管理软件有哪些?推荐这10款国内外好用的项目管理工具
- 项目管理必备:盘点2024年13款好用的项目管理软件