У меня сложилось впечатление, что virtualenv --no-site-packages
это создаст совершенно отдельную и изолированную среду Python, но, похоже, это не так.
Например, у меня есть python-django, установленный глобально, но я хочу создать virtualenv с другой версией Django.
$ 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
.