Wirtualne środowiska Pythona
Python jest obecnie jednym z najpopularniejszych i najbardziej lubianych języków programowania, i nic nie wskazuje na to, żeby miało się to zmienić. Narzędziem, bez którego nie można wyobrazić sobie pracy w tym języku są wirtualne środowiska - i to właśnie virtualenvom poświęcony będzie ten wpis.
Dlaczego warto?
Środowiska wirtualne (ang. virtualenv) to foldery, które zawierają wybraną przez nas wersję pythona i pakiety których potrzebujemy w naszym projekcie. W dużym skrócie - różne projekty wymagają różnych pakietów. Pracujesz nad aplikacją webową? Przyda się środowisko z Flaskiem lub Django. A może chcesz napisać sieć neuronową? Środowisko z PyTorch, Tensorflow lub numpy zdecydowanie ułatwi zadanie. Dzięki posiadaniu oddzielnych środowisk dopasowanych do potrzeb swoich projektów nie zaśmiecasz instalacji globalnej, masz kontrolę nad wersjami pakietów oraz unikasz chaosu, ponieważ każdy projekt ma własne środowisko. Zarządzanie środowiskami wirtualnymi umożliwiają m.in menadżery venv i conda.
Tworzenie środowiska - Mac, Linux
Python od wersji 3.3 umożliwia tworzenie środowisk za pomocą modułu venv. Odbywa się to za pomocą komendy
python3 -m venv sciezka/do/katalogu
Utworzone środowisko możemy aktywować wpisując:
source sciezka/do/katalogu/bin/activate
Po aktywacji środowiska zobaczymy w konsoli jego nazwę (w wypadku narzędzia venv odpowiada ona nazwie folderu w którym znajduje się środowisko). Aby zainstalować pakiety, używamy polecenia
pip install nazwa_pakietu
w konsoli z aktywnym środowiskiem:
Jak widać pakiet i wszystkie zależności niezbędne do jego działania zostały pomyślnie zainstalowane. Możemy wypisać wszystkie pakiety zainstalowane w środowisku wpisując w konsoli
pip freeze
lub
pip list
Jeśli korzystamy z systemu kontroli wersji (np. git) warto stworzyć plik w którym znajdą się wymagane w projekcie pakiety wraz z ich wersjami i umieścić go w naszym repozytorium. Dzięki temu szybko przywrócimy nasze środowisko wirtualne, gdy będziemy pracować nad projektem zdalnie lub po prostu na innym komputerze. Aby to zrobić, wystarczy w terminalu z aktywnym środowiskiem wpisać
pip freeze > requirements.txt
Możemy teraz w nowym środowisku zainstalować pakiety z pliku wpisując w konsoli
pip install -r requirements.txt
Reszta przydatnych poleceń to:
pip uninstall nazwa_pakietu
aby odinstalować paczkę,
pip install nazwa_pakietu -U
aby zaktualizować wskazany pakiet,
deactivate
deaktywacja środowiska
Czy to działa?
Jeśli stworzyliśmy środowisko i zainstalowaliśmy na nim pakiety (w tym przypadku był to pakiet django), to logicznym jest, że powinniśmy móc korzystać z dobrodziejstw tych pakietów wewnątrz naszego środowiska i odwrotnie - jeśli środowisko jest nieaktywne, system nie powinien rozpoznać, o co nam chodzi. Sprawdźmy więc, czy wszystko działa tak, jak powinno - skorzystajmy z polecenia, które tworzy nowy projekt w django:
django-admin startproject nazwa_projektu
Najpierw w konsoli z nieaktywnym, a później aktywnym środowiskiem.
Jak widać, po aktywacji środowiska udało nam się stworzyć nowy projekt w django.
Podsumowanie
Dowiedzieliśmy się w jaki sposób stworzyć wirtualne środowisko oraz jak zarządzać pakietami wewnątrz niego.