Uzupełnienie do artykułu o wirtualnych środowiskach pythona. Skrypt virtualenvwrapper to miłe ułatwienie ich wykorzystywania - dla użytkowników Linuksa.
Poniżej omówienie funkcjonalności oraz krótka instrukcja.
Funkcjonalność
virtualenvwrapper to po prostu wygodna konwencja i kilka poręcznych komend.
Konwencją jest przechowywanie wszystkich wirtualnych środowisk jako
podkatalogów w dedykowanym miejscu (domyślnie ~/.virtualenvs
).
Poręczne komendy pozwalają tworzyć, aktywować, deaktywować i usuwać te środowiska bez wprowadzania pełnych ścieżek, z shellowym autodopełnianiem.
Całość to nieco ponad 100 linii skryptu. Nic wielkiego, ale faktycznie wygodne.
Instalacja
Ściągamy najnowszą wersję ze strony projektu.
Rozpakowujemy archiwum, kopiujemy plik virtualenvwrapper_bashrc
w jakieś poręczne miejsce, dopisujemy do ~/.bashrc
linijkę
source /ścieżka/do/virtualenvwrapper_bashrc
Ja stosuję troszkę inną konwencję: moje
~/.bashrc
kończy się zapisem:for i in $HOME/.bashrc.d/*.sh; do source $i done
Dlatego po prostu zapisałem plik
virtualenvwrapper_bashrc
jako~/.bashrc.d/virtualenvwrapper.sh
.
Tworzymy katalog na wirtualne środowiska:
$ mkdir ~/.virtualenvs
Inny katalog można wymusić ustawiając zmienną WORKON_HOME
albo
edytując początek zapisanego skryptu virtualenvwrapper
.
Na koniec trzeba odpalic nowy terminal albo w istniejącym wykonać z palca:
$ source /ścieżka/do/virtualenvwrapper_bashrc
Wszystkie omawiane niżej polecenia są zdefiniowane jako funkcje shellowe.
Wykorzystanie
Polecenia zapewniane przez virtualenvwrapper.
Tworzenie nowego środowiska
Uruchamiamy
$ mkvirtualenv mojprojdev
albo (gdy środowisko ma być odizolowane od bibliotek systemowych)
$ mkvirtualenv --no-site-packages mojprojdev
Polecenie
mkvirtualevn mojprojdev
jest równoważne komendzie:$ python -m virtualenv ~/.virtualenvs/mojprojdev
ale jak widać odrobinę krótsze. Ponadto,
mkvirtualenv
od razu aktywuje stworzone środowisko.
Aktywacja środowiska
Uruchamiamy
$ workon mojprojdev
Znowu, jest to równoważne poleceniu:
$ . ~/.virtualenvs/mojprojdev/bin/activate
z wyjątkiem sensowniejszych komunikatów błędu.
Polecenie workon
obsługuje dodatkową konwencję: jeśli w katalogu
bin
środowiska znajduje się skrypt postactivate
(np. ~/.virtualenvs/mojprojdev/bin/postactivate
), zostanie
przetworzony przez bieżący shell. Częste wykorzystanie to ustawienie
dodatkowych zmiennych środowiskowych albo zrobienie cd
do
jakiegoś katalogu roboczego.
Lista dostępnych środowisk
Polecenie workon
obsługuje shellowe dopełnianie parametrów (to być
może najważniejsza cecha virtualenvwrapper):
-
pisząc
workon
i naciskając Tab dostajemy listę wszystkich zrobionych środowisk, -
pisząc
workon mo
i naciskając Tab dostajemy listę wszystkich środowisk o nazwie zaczynającej się odmo
Ponadto uruchomienie workon
bez parametrów powoduje wypisanie
listy wszystkich środowisk.
Deaktywacja środowiska
Działa standardowe
$ deactivate
Oczywiście można też po prostu uruchomić workon
z innym parametrem.
Usuwanie środowiska
Niepotrzebne środowisko usuwamy:
$ rmvirtualenv usuwaneśrodowisko
Dodatkowe konwencje
Polecenie
$ add2virtualenv /jakiś/katalog
dodaje katalog podany jako parametr do pythonowej ścieżki bieżącego
wirtualnego środowiska. Jest to uproszczony odpowiednik python setup.py develop
dla narzędzi nie mających takiego skryptu.
Podsumowanie
virtualenvwrapper nie jest żadnym odkryciem, to tylko kilka skrótowców. Niemniej jednak, istotnie ułatwia pracę z wirtualnymi środowiskami pythona pod Linuksem. Włączenie/przełączenie środowiska to naciśnięcie kilku klawiszy, do tego dzięki skupieniu wszystkich środowisk w jednym miejscu, łatwiej zachować w nich porządek.