Wirtualne środowisko uruchomieniowe Pythona
Praca programisty wymaga niekiedy testowania nowych bibliotek i rozwiązań. Niekiedy instalujemy biblioteki do testów zapominając o nich, co może spowodować potem śmietnik w bibliotekach systemowych Pythona. Rozwiązaniem, by utrzymać porządek, jest wirtualne środowisko uruchomieniowe, virtualenv, a znacznym ułatwieniem, virtualenvwrapper.
Virtualenv umożliwia nam utrzymanie porządku w pakietach - utworzyć osobne środowisko uruchomieniowe Pythona, którego możemy używać z jednym projektem. Takim środowiskiem zarządzamy niezależnie od systemu, a więc mogą się tam znajdować biblioteki niedostępne w głównym środowisku Pythona, w innych wersjach (starsze, nowsze). Jest to wielce przydatne zarówno w testach, jak w tworzeniu oprogramowania.
Virtualenvwrapper, to dodatkowy zestaw narzędzi opakowujących virtualenv. Jak to działa? W czystym virtualenv, po utworzeniu środowiska, by się do niego odwołać, musimy wywołać ścieżkę dostępu do naszej instancji Pythona:
/home/asdfuser/venv/bin/python
Natomiast virtualenvwrapper pozwala wywołać po prostu python, co przy włączonym środowisku venv, wywoła za nas aktualnie włączone wirtualne środowisko. Jedyne, co trzeba zrobić, to uruchomić odpowiednie:
workon python-basic workon python-z-ta-super-biblioteka
Jedyny minus, to trochę bardziej skomplikowana instalacja narzędzi, za to utworzenie nowego środowiska jest już zdecydowanie prostsze.
Najpierw należy oczywiście zainstalować virtualenvwrappera w systemie. Ubuntu 12.04 w repozytorium posiada wersję 2.11, więc najlepiej zainstalować najnowszą przez pip'a:
pip install virtualenvwrapper
bądź:
sudo pip install virtualenvwrapper
Następne polecenia wykonujemy już w kontekście zalogowanego użytkownika, nie całego systemu:
export WORKON_HOME=~/.virtualenv source /usr/local/bin/virtualenvwrapper.sh
Oba powyższe polecenia warto dodać jeszcze do pliku .bashrc.
Tak wykonana instalacja utworzy nam nowe kontener środowisk, oraz zapewni auto uzupełnianie swoich komend. Możemy spokojnie umieścić go w ukrytym katalogu, nie będziemy się do środowisk odwoływać inaczej, jak poprzez ich nazwę.
Wirtualne środowisko najłatwiej utworzyć za pomocą polecenia mkvirtualenv:
mkvirtualenv python-basic mkvirtualenv -p /usr/bin/python3 python3-basic
Drugi przypadek tworzy nam środowisku uruchomieniowe python3 (musimy oczywiście mieć zainstalowane w systemie). Teraz wystarczy się przełączyć:
workon python-basic workon python3-basic
Po wykonaniu drugiego polecenia, wywołanie Python w terinalu uruchomi nam konsolę Pythona w wersji 3, a nie 2.7, jaka jest domyślnie zainstalowana w Ubuntu 12.04
Na zakończenie, jeśli chcemy wrócić do systemowej biblioteki i przestać używać środowiska wirtualnego, wykonujemy polecenie deactivate.