Virtualenv - odrębne środowiska pracy


8 czerwca 2013


Tworząc aplikacje w języku Python instalujemy różne pakiety. Co zrobić aby zainstalować np. dwie wersje Django na jednym komputerze?

Tworząc oprogramowanie korzystamy z różnych pakietów. Nie jest to problemem gdy tworzymy jedną aplikację gdyż wykorzystujemy tylko te pakiety zainstalowane w systemie. Problem pojawi się gdy będziemy pracowali np. nad starą aplikacją stworzoną np. w Django.1.4 oraz nową aplikacją tworzoną w Django 1.5. Co wtedy zrobić? Ciągłe instalowanie/odinstalowywanie Django nie jest dobrym rozwiązaniem. W rozwiązaniu tego problemu pomoże nam pakiet Virtualenv.  Umożliwia on stworzenie w systemie wyizolowanych środowisk dla Pythona. 

Poniższy wpis opisuje instalacje i konfiguracje w systemie Fedora 18.

1. instalacja PIP

Zainstalujemy pip - program do zarządzania pakietami w Pythonie

yum install python-pip

2. instalacja, konfiguracja Virtaulenv

python-pip install VirtualEnvManager

Po instalacji Virtualenv możemy już wykorzytać jego możliwości. Lepszym rozwiązaniem jest jednak doinstalowanie rozszerzenia virtualenvwrapper, za pomocą którego zarządzanie "wirtualnymi środowiskami" będzie szybsze i łatwiejsze,

python-pip install virtualenvwrapper

Konfiguracja virtualenvwrapper polega na dopisaniu w pliku .bashrc w katalogu domowym użytkownika instrukcji: 

export WORKON_HOME=~/Envs
mkdir -p $WORKON_HOME
source /usr/bin/virtualenvwrapper.sh

Zmienna WORKON_HOME określa katalog, w którym będą tworzone wyizolowane środowiska. Druga linia tworzy katalog. Ostatnia to ścieżka do skryptu virtualenvwrapper.
Następnie uruchamiamy ponownie komputer lub wykonujemy polecenie:

source .bashrc

3. korzystanie z virtualenv

Tworzymy nowe środowisko "projekt_1" za pomocą polecenia:

mkvirtualenv --distribute --no-site-package projekt_1

Przełączniki:
- distribute : będziemy korzystali z nowszego systemu zarządzania pakietami
- no-site-packages: blokujemy dostęp do katalogu z pakietami systemowymi

Po wykonaniu polecenia nowe środowisko zostanie od razu uruchomione. 
Wykonując komendę:

(projekt_1) ~ $ pip freeze

zobaczymy, że nie mamy dostępu do pakietów systemowych.

Środowisko "projekt_1" zostało odizolowane od systemu. Możemy w nim instalować nowe pakiety.
Aby wyjść ze środowiska używamy polecenia :

(projekt_1) ~ $ deactivate

Ponowne uruchomienie środowiska wymaga użycia polecenia:

workon projekt_1

4. korzystanie z różnych wersji Django

Stworzymy nowe środowisko i zainstalujemy Django w wersji 1.4

mkvirtualenv --distribute --no-site-package env_1
(env_1) ~ $ pip install Django==1.4

5. Podsumowanie

Virtualenv to jedno ze standardowych narzędzi wykorzystywanych przez programistów języka Python. Korzystanie  z tego narzędzia nie sprawia trudności i bardzo ułatwia pracę w przypadku gdy pracujemy nad różnymi projektami wymagajacymi starych wersji pakietów.

Dokumentacja:
Virtualenv - http://www.virtualenv.org
Virtualenvwrapper - http://virtualenvwrapper.readthedocs.org 

Co zawiera blog?

Na blogu umieszczam wpisy dotyczące mojej pracy, zainteresowań. Głowna tematyka to programowanie oraz recenzje płyt oraz książek.

PostGIS + GeoDjango


Przykład wykorzystania przestrzennej bazy danych oraz frameworka GeoDjango.

Ray Bradbury - 451° Fahrenheita


Czytasz książki? Lepiej zacznij!

Aktywność na blogu


Czyli coś w trawie piszczy!

Isaac Asimov - "Ja, Robot"


Klasycznie o Trzech Prawach Robotyki

The Prodigy - The Day Is My Enemy Remixed


Co sądzę o płycie z remixami i bonusowymi utworami?

Virtualenv - odrębne środowiska pracy


Tworząc aplikacje w języku Python instalujemy różne pakiety. Co zrobić ...