无法在Windows上配置virtualenv以不使用虚拟环境外的软件包

5

我在Windows 7上全局安装了Python 2.7,路径为c:/python27

我使用pip install virtualenv成功安装了virtualenv 1.11.6。

然后,我使用python.exe -m virtualenv c:/virtualenv/env1创建了一个虚拟环境,并激活它:

cd c:/virtualenv/env1/scripts

activate

提示已经改变,证明一切都正常:

(env1) c:\virtualenv\env1\Scripts>

现在我的问题是,我刚创建的虚拟环境仍然继承了全局Python 2.7中的软件包,而我不想要这个。

我尝试使用--no-site-packages创建新的虚拟环境,但是出现了同样的问题。在virtualenv文档中,它说--system-site-packages可以用来自愿继承全局Python中的软件包,这意味着默认行为应该是不具有这种继承...

你有什么关于我的设置有什么问题?


我刚刚按照建议使用C:/Python27/Scripts/virtualenv.exe c:/virtualenv/env1创建了一个新的虚拟环境,但是仍然存在同样的问题。 - Etienne Desgagné
1
它是否与PYTHONPATH环境变量中的一些混乱有关? - Etienne Desgagné
我的PYTHONPATH包含:c:\python27;c:\python27\lib;C:\Python27\Lib\site-packages;C:\Python27\DLLs; 我会尝试将其删除。 - Etienne Desgagné
清理我的PYTHONPATH解决了问题...您可以编写答案,我会接受它。非常感谢。 - Etienne Desgagné
@EtienneDesgagné,如果你手动清理它,那只是一个解决方法而不是一个正确的修复方法——使用virtualenv,它不会将site-packages放入你的PYTHONPATH中。 - Charles Duffy
显示剩余2条评论
2个回答

5
在评论线程之后,解决方案是不要将您的site-packages放在PYTHONPATH中。 :)

0

如果您使用的是足够新的virtualenv,它默认不包括site-packages。

如果您使用的是旧版本,请按以下方式创建:

virtualenv --no-site-packages target-directory

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接