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.

Raport sportowy #7


Zdjęcie: Damien Kühn, Unsplash

Wieczne Blue Lines


Artwork: Michael Nash, 3D-Del Naja
Ćwierćwiecze jednej z najważniejszych płyt ...

Własne znaczniki w szablonach


Przykład tworzenia znaczników i ich użycia w systemie szablonów Django. ...

Najlepsza książka do nauki Pythona


Moje wrażenia po lekturze "Wprowadzenie. Python" Wydanie IV

ReportLab PDF


Opis biblioteki służącej do tworzenia plików PDF. Przykłady tworzenia tabeli ...

Kontrola nad schematem


South - po co i jak go używać?
Opis ...