Python 为什么不是';t virtualenv创建一个裸露的环境?

Python 为什么不是';t virtualenv创建一个裸露的环境?,python,virtualenv,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)

我刚开始使用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]
首先,蛋黄根本不应该起作用。最初,我会将yolk安装到env,它只会显示大约5个包。现在一切都好了

另外,在有人问我之前,我有最新版本的virtualenv,所以没有默认的站点包。如果我显式地使用该选项,我会得到相同的结果


这是怎么回事?

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

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


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

哪个virtualenv
。它是您期望的吗?您是否也在系统级安装了
yolk
?@jathanism实际上,不是,它指向/usr/local/bin/virtualenv,而不是这个位置,即使提示中的相同内容是正确的。。。。编辑:嗯,现在我想起来了,它不是一直都是那个吗?这只是可执行文件。嘿,这很有道理。尽管如此,我只是在
some_env
中安装了处于活动状态的蛋黄,它仍然显示了大量的安装列表。@Jamey现在知道
哪个蛋黄
指向你的virtualenv中的蛋黄了吗?一旦我安装了处于活动状态的蛋黄,我就必须重新激活它。现在它开始工作了。我不记得那在过去是必要的。