У мене було враження, що 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
.