为什么virtualenv不能创造一个裸露的环境?

时间:2012-06-22 22:13:13

标签: python virtualenv

我刚开始使用virtualenv,直到昨天才正常工作。现在,似乎无处不在,它不区分我的系统环境和我设置的任何环境。例如,

$ virtualenv some_env
New python executable in some_env/bin/python
Installing setuptools............done.
Installing pip...............done.

$ source some_env/bin/activate
(some_env)
$ yolk -l
Box2D           - 2.0.2b2      - active 
Django          - 1.4          - active 
Fabric          - 1.3.3        - active 
Markdown        - 2.1.1        - active 
[...and so on, listing all my system installs]

首先,蛋黄甚至不应该起作用。最初,我会在环境中安装蛋黄,它只显示大约5个包。现在就是一切。

此外,在有人要求之前,我有最新版本的virtualenv,所以--no-site-packages是默认的。如果我明确使用该选项,我会得到相同的结果。

这里发生了什么?

1 个答案:

答案 0 :(得分:3)

virtualenv的工作原理是将bin文件夹放在virtualenv中PATH环境变量的开头,这样无论何时运行python,它都会重新路由到有限的python环境。

但是在你的情况下,我怀疑yolk脚本可能安装到/usr/local/bin/或类似的 - 在激活virtualenv后仍然可以访问。这个脚本可能会在顶部指向你的全局python解释器,因此将在你的全局python环境中运行而不是你的virtualenv。

如果您要在virtualenv中安装yolk,那么该版本的yolk脚本将在路径中获得优先权,并且一切都将按预期工作。