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.