4

我刚开始使用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,所以 --no-site-packages 是默认的。如果我明确使用该选项,我会得到相同的结果。

这里发生了什么?

4

1 回答 1

3

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

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

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

于 2012-06-22T22:21:55.003 回答