Python & virtualenv¶
Informacja
Może Ciebie również zaintersować artykuł: Python 3 & venv
Wirtualne środowisko pozwala zarządzać pakietami bez ingerencji w systemową instalację Pythona.
virtualenv jest narzędziem dodatkowym, nie jest dostarczany razem z interpreterem (Python 3 dostarcza moduł venv, o którym przeczytasz tutaj).
Instalacja virtualenv jest dość prosta i sprowadza się do wydania polecenia:
pip install virtualenv
Prawdopodobnie, oprogramowanie znajduje się także w repozytorium Twojej dystrybucji Linuksa - w Debianie (i dystrybucjach Debiano-pochodnych) jest to pakiet python-virtualenv
.
Utworzenie wirtualnego środowiska jest możliwe za pomocą polecenia virtualenv, argumentem do programu jest nazwa środowiska (w poniższym przykładzie webenv):
virtualenv webenv
Wybrany zostanie domyślny interpreter Pythona, aby to zmienić można użyć przełącznika -p i wskazać konkretny interpreter (dokładna ścieżka zależy od Twojego systemu operacyjnego i interpretera):
virtualenv -p /usr/bin/python2 webenv
virtualenv -p /usr/bin/python3 webenv
Do aktywacji środowiska w ystemie Linux służy polecenie source. Parametrem jest ścieżka do skryptu, który odpowiednio zmienia zmienne środowiskowe (np. PATH, PS1):
source webenv/bin/activate
Po aktywacji możemy używać poleceń związanych z pythonem. Przyładowo, instalację Django w wersji 1.8.13 wykonujemy poleceniem:
pip install Django==1.8.13
Innymi komendami, które warto znać, są:
pip freeze > nazwa_pliku
oraz:
pip install -r nazwa_pliku
Pierwsze polecenie polecenie tworzy plik, którego zawartością jest lista zainstalowanych w środowisku pakietów, wraz z ich wersjami. Często taki plik nosi nazwę requirements.txt
, a tutaj jego przykład. Tworząc nowe, czyste środowisko możemy wczytać taką listę i zainstalować pakiety w niej zawarte (drugie polecenie).
Dezaktywacji wirtualnego środowiska dokonujemy za pomocą polecenia:
deactivate
Poniżej literatura, w której znajdziesz więcej informacji na temat virtualenv. Ciekawym rozwiązaniem jest virtualenvwrapper, którego tutaj nie przedstawiłem, gdyż jest to tylko «nakładka» na polecenia virtualenv.