Miałem wrażenie, virtualenv --no-site-packages
że stworzy całkowicie oddzielne i izolowane środowisko Pythona, ale tak się nie dzieje.
Na przykład mam python-django zainstalowany globalnie, ale chcę stworzyć virtualenv z inną wersją 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
Z tego co wiem, pip -E foo install
powyższe powinno przeinstalować nową wersję Django. Ponadto, jeśli powiem pipowi, aby zamroził środowisko, otrzymam całą masę pakietów. Spodziewałbym się, że dla świeżego środowiska z --no-site-packages
tym byłoby puste?
$ 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 ...
Czy nie rozumiem, jak --no-site-packages
powinno działać?
--no-site-packages
DEPRECATED. Zachowane tylko w celu zapewnienia zgodności z poprzednimi wersjami. Brak dostępu do globalnych pakietów witryn jest teraz domyślnym zachowaniem . Jeśli chcesz uzyskać dostęp do globalnych pakietów witryn, możesz włączyć --system-site-packages
.