virtualenv: określanie, które pakiety mają być używane w całym systemie vs lokalne [duplikat]
Możliwy duplikat:
spraw, aby virtualenv odziedziczył określone pakiety z Twojej globalnej witryny-packages
Czy istnieje sposób, aby utworzyć virtualenv
dla Pythona i określić, które pakiety powinny być używane (dziedziczone) z instalacji systemowej, a które z nich powinny być ignorowane z instalacji systemowej?
Dokładniej, powiedzmy na przykład, że istnieje system-szeroka instalacja:
numpy
scipy
matplotlib
I Chciałbym stworzyć wirtualne środowisko takie, że:
- wykorzystuje systemową instalację
numpy
iscipy
-
ignoruje system-wide
matplotlib
, i pozwala mi zainstalować/uaktualnić moje własne wersje z niego (zpip -U matplotlib
).
1 answers
Najprostszym sposobem na to jest stworzenie virtualenv, który zawiera pakiety witryny systemowej, a następnie zainstalowanie potrzebnych wersji:
$ virtualenv --system-site-packages foo
$ source foo/bin/activate
$ pip install Django==1.4.3
Możesz także wyczyścić virtualenv, sprawdzając Wyjście (usunięcie system-site-packages za pomocą pip freeze
i usuwając pakiety, których nie chcesz.pip uninstall
nie działa już w nowszych wersjach virtualenv)
Innym sposobem byłoby stworzenie czystego virtualenv i połączenie części, które need:
$ virtualenv --no-site-packages foo
$ source foo/bin/activate
$ ln -s /usr/lib/python2.7/dist-packages/PIL* $VIRTUAL_ENV/lib/python*/site-packages
Polecenia mogą być nieco inne w środowisku nie-unixish. Ścieżki zależą również od używanego systemu. W celu znalezienia ścieżki do biblioteki Uruchom powłokę Pythona (bez aktywowanego virtualenv), zaimportuj moduł i sprawdź module_name.__path__
. np.
Python 2.7.3 (default, Sep 26 2012, 21:51:14)
[GCC 4.7.2] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import PIL
>>> PIL.__path__
['/usr/lib/python2.7/dist-packages/PIL']
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-01-28 21:41:23