我印象中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
应该如何工作?
--no-site-packages
已弃用。保留只是为了向后兼容。不能够访问全球站点包是现在的默认行为。如果要访问全局站点包,则可以启用--system-site-packages
。