Wirtualne środowiska w Pythonie

Python: Wirtualne Środowiska

Poziom trudności
2/5

Wykorzystując Pythona do wykonywania testów automatycznych, zdajemy sobie sprawę z ogromnych możliwości tego języka. Jednak jeśli mamy stworzone środowisko testowe zawierające konkretną wersję Pythona, dodatkowo korzystające z wielu bibliotek, problemem staje się jego przenaszalność. Czy jesteśmy wtedy skazani na mozolne instalowanie konkretnej wersji Python, konkretnych wersji każdej paczki, konfigurację wszystkiego od podstaw? Z pomocą może nam przyjść wirtualne środowisko.

Czym jest wirtualne środowisko w Pythonie? Jest to narzędzie, umożliwiające stworzenie odizolowanego środowiska, przeznaczonego do uruchamiania określonych typów aplikacji, czy skryptów.

Instalacja i konfiguracja

Pierwszym krokiem, jaki należy wykonać, aby rozpocząć przygodę z wirtualnymi środowiskami jest instalacja wymaganych bibliotek. Wykonujemy to za pomocą narzędzia apt-get (w przypadku Linuxa Ubuntu lub podobnych):

qabrio@test:~$ sudo apt-get install python-virtualenv

W kolejnym kroku należy utworzyć wirtualne środowisko. Podstawowa komenda do stworzenia wirtualnego środowiska to:

qabrio@test:~$ virtualenv ./virtualStdPython

Dzięki tej komendzie uzyskamy:

  • środowisko wirtualne utworzone w podkatalogu virtualStdPython (oczywiście można podać dowolną ścieżkę, zarówno względną, jak i bezwzględną),
  • podstawowa wersja Python taka sama jak lokalnie,
  • zainstalowane paczki.
(virtualStdPython) qabrio@test:~$ pip list
Package Version
---------- -------
pip 19.1.1
setuptools 41.0.1
wheel 0.33.4
(virtualStdPython) qabrio@test:~$ python --version
Python 2.7.15rc1

Jeśli potrzebujemy skorzystać z konkretnej wersji Pythona, możemy skorzystać z dodatkowego parametru python, gdzie jako argument podajemy ścieżkę do zainstalowanej na komputerze wersji Pythona.

qabrio@test:~$ virtualenv --python=/usr/bin/python3.6 ./virtualNewPython

W tym przypadku otrzymamy:

  • nowe środowisko wirtualne utworzone w podkatalogu virtualNewPython,
  • wersja Pythona 3.6,
  • zainstalowane paczki

Teraz po sprawdzeniu wersji otrzymamy:

(virtualNewPython) qabrio@test:~$ python --version
Python 3.6.7

Dodatkowo jest możliwość wyłączania predefiniowanej instalacji bibliotek:

W tym przypadku komenda wygląda tak:

qabrio@test:~$ virtualenv ./pureEnv --no-wheel --no-pip --no-setuptools

Jednak jeśli nie jesteśmy całkowicie pewni, że nie chcemy instalować tych bibliotek, polecam zostawić domyślne ustawienia.

Jak używać?

Aby aktywować wirtualne środowisko, należy posłużyć się komendą:

qabrio@test:~$ source {ścieżka do wirtualnego środowiska}/bin/activate

Środowisko zostanie aktywowane jedynie w aktywnym oknie terminala. Jest to niewątpliwa zaleta tego narzędzia, gdyż mamy możliwość uruchomienia dowolnej liczby różnych wirtualnych środowisk jednocześnie. Dzięki temu, w przypadku używania Terminatora, mamy możliwość równoległej pracy z kilkoma środowiskami wirtualnymi.

Aby zakończyć pracę z danym środowiskiem wirtualnym, należy użyć komendy:

(virtualNewPython) qabrio@test:~$ deactivate
qabrio@test:~$

Jeśli mamy pewność, że środowisko wirtualne już nie będzie nam potrzebne, możemy je usunąć. Wykonać to można poprzez usunięcie folderu zawierającego stworzone wcześniej środowisko.

Główną zaletą środowisk wirtualnych jest fakt, że możemy instalować w nich dowolne paczki, a w przypadku zakończenia pracy po prostu je zamknąć, w dalszym ciągu mając lokalnie czystego Pythona. Oczywiście w każdym momencie możemy wrócić do pracy z wcześniej stworzonym wirtualnym środowiskiem — po prostu je aktywując. Jeśli potrzebujemy stworzyć środowisko zawierające określone paczki, możemy je instalować przy użyciu standardowego narzędzia do instalacji pakietów — pip.

(virtualNewPython) qabrio@test:~$ pip install

Przechodząc powoli do podsumowania, przyjrzyjmy się temu, co możemy osiągnąć dzięki wykorzystaniu tego narzędzia. Niewątpliwą zaletą jest możliwość instalacji dowolnej liczby wirtualnych środowisk na jednej maszynie, co pozwala na prowadzenie wielu projektów z odrębnymi konfiguracjami w ramach jednego komputera. Możliwe jest nawet używanie różnych wersji Pythona. Kolejną cenną zaletą jest łatwość przenoszenia gotowego środowiska w inną lokalizację, co w szczególności przydaje się podczas testów z wykorzystaniem minikomputerów, takich jak Raspberry Pi. Bardzo ciekawą funkcją jest możliwość równoległej pracy z różnymi środowiskami jednocześnie. Pełne możliwości można szczególnie uzyskać w połączeniu z Terminatorem przy wykorzystaniu pracy grupowej w wielu oknach. Więcej o Terminatorze na:

Jak widać, wykorzystywanie tego narzędzia w codziennej pracy niesie za sobą wiele korzyści. Nawet jeśli ktoś wcześniej nie pracował z tym narzędziem, wystarczy zaledwie kilka minut na poznanie ogólnej zasady działania.

Dodaj komentarz