【发布时间】:2010-11-25 20:35:25
【问题描述】:
我的印象是 virtualenv --no-site-packages 会创建一个完全独立的 Python 环境,但似乎并非如此。
例如,我全局安装了 python-django,但希望创建一个具有不同 Django 版本的 virtualenv。
$ virtualenv --no-site-packages foo
New python executable in foo/bin/python
Installing setuptools............done.
$ pip -E foo install Django
Requirement already satisfied: Django in /usr/share/pyshared
Installing collected packages: Django
Successfully installed Django
据我所知,上面的pip -E foo install 应该重新安装新版本的 Django。另外,如果我告诉 pip 冻结环境,我会得到很多包。我希望对于 --no-site-packages 的全新环境,这将是空白的?
$ pip -E foo freeze
4Suite-XML==1.0.2
BeautifulSoup==3.1.0.1
Brlapi==0.5.3
BzrTools==1.17.0
Django==1.1
... and so on ...
我是否误解了 --no-site-packages 应该如何工作?
【问题讨论】:
-
@SalemBenMabrouk 链接断开,new link 在这里。 Github 上的相关问题:Did the '--no-site-packages' flag recently disappear?
-
在该链接中,它说
--no-site-packages已弃用。保留只是为了向后兼容。 没有访问全局站点包现在是默认行为。如果你想访问全局站点包,你可以启用--system-site-packages。 -
从哪个版本开始弃用,@Ynjxsjmh?我想我们仍然需要明确的
--no-site-packages,如果旧版本的 python/virtualenv 可能已经到位? -
@AaronMcDaid 我没有调查这个,但是我提到的 github issue 的作者说它至少在 20.0.0 中消失了。对于旧版本的 virtualenv,我们仍然需要显式的
--no-site-packages。
标签: python virtualenv pip