W tym artykule dowiesz się, jak rozpocząć pracę ze środowiskami wirtualnymi w Pythonie, zarówno w systemach operacyjnych Windows, jak i Linux.
Kiedy zaczynasz pracę nad wieloma projektami w lokalnym środowisku programistycznym, często napotykasz problemy z zależnościami. Tworzenie środowisk wirtualnych dla każdego projektu może pomóc w lepszym zarządzaniu zależnościami i wymaganiami projektu.
Aby wykorzystać zalety środowisk wirtualnych w Pythonie, nauczmy się tworzyć i aktywować środowiska wirtualne. 👩🏽💻
Czym są środowiska wirtualne?
Środowiska wirtualne to izolowane i niezależne środowiska, które zawierają kod i zależności projektu.
Ale dlaczego warto korzystać ze środowisk wirtualnych?
Cóż, wirtualne środowiska pozwalają na instalowanie i używanie różnych wersji tych samych bibliotek dla różnych projektów. Korzystanie ze środowisk wirtualnych zapewnia również brak istotnych zmian, gdy dwa lub więcej projektów korzysta z różnych wersji. Zrozummy to bardziej szczegółowo.
Instalowanie pakietów w Pythonie
Standardowa biblioteka Pythona jest dostarczana z kilkoma przydatnymi modułami do testowania jednostkowego, interakcji z systemem operacyjnym, pracy z datami i godzinami i nie tylko.
Jednak podczas pracy nad projektami w Pythonie często będziesz musiał zainstalować inne pakiety — opracowane przez społeczność Pythona. Dotyczy to zwłaszcza aplikacji, takich jak web scraping do zbierania danych, uczenie maszynowe i aplikacje internetowe.
Aby zainstalować i zarządzać tymi pakietami, możesz użyć conda lub pip.
Każdy projekt wymaga określonego zestawu pakietów, które należy zainstalować. Jednak po zainstalowaniu wszystkich pakietów w środowisku programistycznym na komputerze lokalnym wszystkie projekty współużytkują pakiety zainstalowane globalnie.
Więc dlaczego jest to problem?
Cóż, możesz mieć N pakietów w swoim środowisku programistycznym. Jednak projekt, nad którym obecnie pracujesz, może wymagać tylko 3 z nich. Gdy wszystkie Twoje projekty współdzielą wspólne instalacje, bardzo trudno jest określić, który z projektów wymaga którego z zainstalowanych pakietów — zależności skojarzonych z każdym projektem.
Jest jeszcze jedno ograniczenie tego podejścia. Załóżmy, że masz projekt Django 2.2 w swojej bibliotece projektu. Decydujesz się rozpocząć pracę nad projektem, który używa Django 4. Instalujesz więc najnowszą wersję Django w tym samym środowisku programistycznym.
Co dzieje się z istniejącą instalacją?
Jest usuwany i zastępowany przez zainstalowaną wersję Django. W nowszych wydaniach stabilnych niektóre funkcje mogły zostać przestarzałe. Twoje wcześniejsze projekty Django mogą nie działać zgodnie z oczekiwaniami.
Podsumowując naszą dotychczasową dyskusję: zarządzanie zależnościami staje się trudne, gdy wszystkie pakiety są instalowane we wspólnym środowisku, ponieważ projekty wymagają do działania własnego zestawu bibliotek.
Jak działają środowiska wirtualne
Do tej pory widzieliśmy wyzwania związane z instalowaniem pakietów w globalnym środowisku programistycznym (instalacje ogólnosystemowe). To motywuje nas do zrozumienia, w jaki sposób środowiska wirtualne radzą sobie z tym ograniczeniem.
Podczas tworzenia i aktywowania środowiska wirtualnego dla projektów w języku Python możesz zainstalować tylko te pakiety, które są wymagane dla bieżącego projektu.
Wracając do przykładu projektów Django, w środowiskach wirtualnych można uruchomić zarówno projekty Django 2.2, jak i Django 4 – bez żadnych konfliktów. Dzieje się tak, ponieważ instalacje Django nie są już instalacjami ogólnosystemowymi, ale są ograniczone do środowisk wirtualnych odpowiednich projektów.
W skrócie: środowiska wirtualne to izolowane środowiska, które zawierają zarówno kod, jak i zależności projektu.
Zalety środowisk wirtualnych
Teraz, gdy wiesz już, jak działają środowiska wirtualne w Pythonie, wymieńmy zalety ich używania:
- Środowiska wirtualne zapewniają izolowane środowisko programistyczne dla poszczególnych projektów, co pozwala nam instalować tylko pakiety wymagane przez określony projekt.
- Ponieważ wirtualne środowiska projektów są zarówno niezależne, jak i izolowane, różne projekty mogą korzystać z różnych wersji tej samej biblioteki — w zależności od wymagań. W środowiskach wirtualnych nie musisz martwić się o uprawnienia systemowe, aby zainstalować biblioteki i skonfigurować środowisko programistyczne.
- Po zainstalowaniu pakietów w środowisku wirtualnym można przechwycić zależności projektu w pliku Requirements. txt. Dzięki temu inni programiści mogą replikować rozwój i środowisko projektu oraz instalować wymagane pakiety za pomocą jednego polecenia.
Do tej pory poznałeś, jak działają środowiska wirtualne i jakie są zalety ich używania. Przyjrzyjmy się niektórym popularnym narzędziom, których możesz używać do tworzenia środowisk wirtualnych i zarządzania nimi w Pythonie.
#1. Wirtualne środowisko
Virtualenv to jedno z powszechnie używanych narzędzi do tworzenia i zarządzania środowiskami wirtualnymi dla projektów Python. Podzbiór funkcjonalności virtualenv jest dostępny w pakiecie venv. Jednak pakiet virtualenv jest szybszy i rozszerzalny w porównaniu do venv.
#2. Pipenv
Dzięki pipnev masz zarówno funkcjonalność środowiska wirtualnego virtualenv, jak i możliwości zarządzania pakietami pip. Używa zarządza plikami pipfile do zarządzania zależnościami projektu w środowisku wirtualnym za pomocą.
Możesz wypróbować pipenv bezpośrednio z przeglądarki na tym placu zabaw Pipenv.
#3. Conda
Jeśli używasz dystrybucji Pythona Anaconda do programowania, możesz użyć conda do zarządzania pakietami i do tworzenia środowisk wirtualnych.
Aby dowiedzieć się więcej, zapoznaj się z tym obszernym przewodnikiem dotyczącym zarządzania środowiskami za pomocą conda.
#4. Poezja
Poetry to narzędzie do zarządzania pakietami, które pozwala zarządzać zależnościami we wszystkich projektach Pythona. Aby zacząć korzystać z Poetry, musisz mieć zainstalowany Python 3.7 lub nowszy.
#5. Venv
Jak wspomniano, venv oferuje podzbiór funkcjonalności virtualenv, ale ma tę zaletę, że jest wbudowany w standardową bibliotekę Pythona, począwszy od Pythona 3.3.
Jest łatwo dostępny wraz z instalacją Pythona — i nie wymaga instalacji zewnętrznych pakietów. Użyjemy go w tym samouczku do tworzenia i pracy ze środowiskami wirtualnymi.
Jak stworzyć wirtualne środowisko Pythona w Ubuntu?
💬 Aby śledzić resztę tego samouczka, musisz mieć lokalną instalację Pythona 3. Upewnij się, że używasz Pythona 3.5 lub nowszej wersji.
W tej sekcji opisano kroki tworzenia i aktywowania środowisk wirtualnych na komputerze z systemem Ubuntu Linux. Te same kroki można również wykonać w innych dystrybucjach Linuksa.
Dla łatwiejszego zarządzania stwórzmy katalog projektu i cd do niego; Stworzymy venv w tym katalogu.
$ mkdir my_project $ cd my_project
Ogólna składnia do tworzenia wirtualnego środowiska dla twojego projektu w Pythonie to python3 -m venv
$ python3 -m venv my_env
Jak aktywować i instalować pakiety w środowisku wirtualnym?
Po utworzeniu środowiska wirtualnego możesz je aktywować i zainstalować w nim wymagane pakiety. Aby aktywować środowisko wirtualne, możesz uruchomić następujące polecenie:
$ source my_env/bin/activate
Po aktywowaniu środowiska wirtualnego możesz uruchomić polecenie pip list, aby uzyskać listę zainstalowanych pakietów:
$ pip list
Jak dotąd nie zainstalowaliśmy żadnego pakietu, więc powinieneś być w stanie zobaczyć setuptools i pip—instalowane domyślnie—w każdym z utworzonych środowisk wirtualnych.
Instalacja pip w środowisku wirtualnym pozwala na instalację pakietów potrzebnych do konkretnego projektu; dlatego masz niezależne środowisko programistyczne dla każdego projektu.
Teraz, po aktywacji środowiska wirtualnego, możesz zainstalować w nim pakiety specyficzne dla projektu za pomocą pip. Jako przykład zainstalujmy żądania Pythona, jeden z najczęściej pobieranych pakietów Pythona, który zapewnia kilka przydatnych funkcji do wysyłania żądań HTTP do pracy z internetowymi interfejsami API.
$ pip install requests
Gdy zainstalujesz bibliotekę żądań, zobaczysz, że biblioteka żądań jest instalowana wraz ze wszystkimi wymaganymi przez nią pakietami.
$ pip list
Możesz użyć polecenia pip freeze i przekierować dane wyjściowe do pliku Requirements.txt, jak pokazano:
$ pip freeze > requirements.txt
Jeśli zbadasz zawartość bieżącego katalogu projektu, zobaczysz, że został utworzony plik Requirements. txt.
$ ls # my_env requirements.txt
Środowisko wirtualne można dezaktywować po zakończeniu pracy nad projektem, uruchamiając następujące polecenie:
$ deactivate
Jak stworzyć wirtualne środowisko Pythona w systemie Windows
Ogólnie do programowania preferowane jest środowisko Linux. Jeśli korzystasz z komputera z systemem Windows, możesz rozważyć użycie podsystemu Windows dla systemu Linux (WSL) do skonfigurowania środowiska terminala Ubuntu na potrzeby programowania lokalnego.
Jeśli korzystasz z komputera z systemem Windows, możesz użyć programu Windows PowerShell lub wiersza polecenia i utworzyć środowiska wirtualne za pomocą następującego polecenia:
> python -m venv <path-to-venv>
Jak aktywować środowisko wirtualne
Aktywacja środowisk wirtualnych na komputerze z systemem Windows różni się w zależności od tego, czy pracujesz w wierszu polecenia, czy w programie Windows PowerShell.
Jeśli jesteś w wierszu polecenia, uruchom następujące polecenie, aby aktywować środowisko wirtualne:
> <path-to-venv>Scriptsactivate.bat
Alternatywnie, jeśli używasz programu Windows PowerShell, uruchomienie tego polecenia spowoduje aktywację środowiska wirtualnego:
> <path-to-venv>ScriptsActivate.ps1
Możesz zainstalować wszystkie wymagane pakiety w środowisku wirtualnym.
Aby dezaktywować środowiska wirtualne, możesz uruchomić polecenie dezaktywacji — zarówno w wierszu polecenia, jak i w programie Windows PowerShell.
Wniosek
W tym artykule omówiliśmy ograniczenia instalacji ogólnosystemowych i sposób, w jaki utrudniają one zarządzanie zależnościami w projektach w języku Python. Środowiska wirtualne w Pythonie umożliwiają lepsze zarządzanie zależnościami, zapewniając jednocześnie izolowane środowisko programistyczne dla poszczególnych projektów.
Wśród powszechnie używanych narzędzi do tworzenia i zarządzania środowiskami wirtualnymi w Pythonie nauczyłeś się korzystać z venv — wbudowanego w standardową bibliotekę Pythona do tworzenia i aktywowania środowisk wirtualnych.
Wewnątrz dedykowanego środowiska wirtualnego projektu można zainstalować wersje bibliotek specyficzne dla projektu. Te wymagania można następnie uchwycić w pliku Requirements.txt, który umożliwia innym programistom łatwe replikowanie środowiska projektu.
Kiedy rozpoczynasz kolejny projekt w Pythonie, pamiętaj, aby korzystać ze środowisk wirtualnych, aby lepiej zarządzać zależnościami. Udanego kodowania!🎉