Długo nie mogłam się do tej idei przekonać przyzwyczajona do tego, że w frameworkach PHP takich jak Kohana czy Yii mogę na jednej instalacji budować sobie rozmaite, niezależne serwisy, oszczędzając przy tym miejsce na dysku (ja jestem z tych dinozaurów co i miejsce na dysku i pamięć operacyjną szanują, bo 486 miały jej mniej niż dzisiejsze pralki automatyczne). Jednak wiele argumentów przekonało mnie o tym, że jednak warto to robić.
- Ułatwia pracę nad rożnymi projektami opartymi o różne wersje Django i korzystające z różnych kompletów bibliotek.
- Migrację danego projektu można przeprowadzać na niezależnym środowisku deweloperskim nie tracąc starej, działającej wersji.
- Możemy niezależnie testować różne biblioteki.
- Unikamy rozmaitych problemów podczas przenoszenia projektu z serwera deweloperskiego na produkcyjny.
- Unikamy kłopotów jakie mogłyby się pojawić w starszych projektach w wyniku aktualizacji jakiejś biblioteki.
Jak to zrobić? Ano najpierw trzeba z repozytorium systemowego zainstalować pakiet virtualenv, który umożliwi nam tworzenie i uruchamianie wirtualnych środowisk.
$ sudo apt-get install python-virtualenv
Kiedy już mamy odpowiednie narzędzie pora stworzyć wirtualne środowisko dla nowego projektu. Najlepiej w tym celu wybrać sobie miejsce i stworzyć katalog w którym przechowywany będzie projekt. Jak sobie to zorganizujemy to już kwestia prywatnych preferencji. Ja wszystkie projekty oparte na Django będę przechowywać w jednym katalogu, który jednocześnie jest moim workspace zdefiniowanym w Aptana, w oddzielnych podkatalogach. Po utworzeniu katalogu dla projektu tworzymy przypisane do niego wirtualne środowisko.
Gdybym chciała wykorzystywać w projekcie domyślną systemową wersję Pythona, w moim przypadku 2.7.12 wystarczy przejść do utworzonego katalogu projektu i stworzyć wirtualne środowisko o unikalnej nazwie.
$ cd /sciezka/do/katalogu/projektu
$ virtualenv nazwa_środowiska
Gdybym jednak chciała użyć innej wersji Pythona musze skorzystać z flagi -p i wskazac katalog z tą wersją. Na przykład tak:
$ cd /sciezka/do/katalogu/projektu
$ virtualenv nazwa_środowiska -p /usr/bin/python3.6
albo po prostu tak:
$ cd /sciezka/do/katalogu/projektu
$ virtualenv nazwa_środowiska -p python3
Po stworzeniu środowiska nalezy je uaktywnić w celu dalszej pracy.
$ source /sciezka/do/katalogu/projektu/nazwa_środowiska/bin/activate
Jedynym znakiem, że znajdujemy się w wirtualnym środowisku jest jego nazwa ujęta w nawiasy znajdująca się przed znakiem zachęty.
Dokumentacje pakietu virtualenv znajdziecie na stronie: virtualenv.pypa.io