我刚开始使用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是默认的。如果我明确使用该选项,我会得到相同的结果。
这里发生了什么?
答案 0 :(得分:3)
virtualenv的工作原理是将bin文件夹放在virtualenv中PATH
环境变量的开头,这样无论何时运行python,它都会重新路由到有限的python环境。
但是在你的情况下,我怀疑yolk脚本可能安装到/usr/local/bin/
或类似的 - 在激活virtualenv后仍然可以访问。这个脚本可能会在顶部指向你的全局python解释器,因此将在你的全局python环境中运行而不是你的virtualenv。
如果您要在virtualenv中安装yolk,那么该版本的yolk脚本将在路径中获得优先权,并且一切都将按预期工作。