Te wymagania i przypadki użycia mogą być trudne do opanowania, gdy różne aplikacje wymagają różnych wersji tej samej biblioteki. Na szczęście Python zapewnia solidne rozwiązanie do izolowania środowisk programistycznych przy użyciu środowisk wirtualnych.
Co to jest wirtualne środowisko Pythona?
Środowisko wirtualne Pythona to samodzielne drzewo katalogów, które zawiera określoną instalację Pythona wraz ze wszystkimi jego standardowymi bibliotekami. Aplikacje wymagające określonej wersji biblioteki mogą być izolowane w tych środowiskach wirtualnych bez zanieczyszczania systemu lub innych implementacji Pythona. Każde środowisko wirtualne jest osobną piaskownicą, dzięki czemu możesz stworzyć dowolną liczbę środowisk wirtualnych.
Tworzenie i zarządzanie środowiskami wirtualnymi
Aby utworzyć środowiska wirtualne w Ubuntu, najpierw zainstaluj wymagany pakiet zależności, uruchamiając polecenie:
$ sudo apt install python3-venvMożesz teraz tworzyć wirtualne środowiska, uruchamiając polecenie:
$ python3 -m venv myenvUruchomienie powyższego polecenia spowoduje utworzenie wirtualnego środowiska o nazwie „myenv” w twoim katalogu domowym. Jeśli chcesz użyć innej wersji Pythona, możesz zastąpić „python3” powyżej pełną ścieżką do lokalizacji alternatywnego pliku binarnego Pythona.
Aby aktywować utworzone powyżej niestandardowe środowisko, uruchom polecenie:
$ źródło myenv/bin/activatePo aktywowaniu środowiska wirtualnego monit powłoki zmieni się, odzwierciedlając aktualnie używane środowisko wirtualne. Jeśli uruchomisz „sys.path” wewnątrz interpretera Pythona, widać, że wirtualne środowisko działa poprawnie. Python będzie teraz szukał pakietów w niestandardowym środowisku, które właśnie utworzyłeś.
Jeśli znak zachęty powłoki nie pokazuje nazwy środowiska wirtualnego jako prefiksu, każdy plik Pythona, który uruchomisz, będzie zamiast tego używać Pythona systemowego. Dlatego konieczne jest pobranie środowiska wirtualnego przed uruchomieniem pliku w niestandardowym środowisku.
Możesz dezaktywować środowisko wirtualne, uruchamiając polecenie:
$ dezaktywujKażde wirtualne środowisko Pythona zawiera „pyvenv.cfg” z kluczem „include-system-site-packages”, który domyślnie jest ustawiony na „false”. Ten klucz mówi środowisku wirtualnemu, czy używać pakietów witryn systemowych, czy nie. Jeśli ustawione na „true”, Python w środowisku wirtualnym będzie sprawdzał pakiety systemowe w przypadku, gdy pakiet nie zostanie znaleziony w środowisku wirtualnym. Dzięki temu wszystkie pakiety zainstalowane w systemie będą importowane do środowiska wirtualnego.
Aby usunąć środowisko wirtualne, wystarczy usunąć katalog środowiska wirtualnego, a zniknie.
Możliwe jest tworzenie i przechowywanie virtualenv na zewnętrznych dyskach USB. Musisz mieć dysk USB sformatowany w systemie plików NTFS lub EXT. System plików FAT32 nie obsługuje dowiązań symbolicznych, co jest wymagane do działania środowisk wirtualnych.
Używanie Menedżera pakietów Pip do instalowania pakietów w środowisku wirtualnym
W środowisku wirtualnym możesz użyć menedżera pakietów pip, aby zainstalować, zaktualizować i odinstalować pakiety. Możliwe jest obniżenie lub uaktualnienie pakietu, określając konkretny numer wersji.
Możesz zainstalować pakiet za pomocą pip, uruchamiając polecenie (zamień pygame na żądaną nazwę pakietu):
$ pip zainstaluj pygame
Przeszukiwalne repozytorium pakietów pip można znaleźć tutaj.
Aby odinstalować pakiet, użyj polecenia:
$ pip odinstaluj pygame
Aby zobaczyć wszystkie wersje pakietu, uruchom polecenie:
$ pip zainstaluj pygame==
Aby obniżyć lub zaktualizować do określonej wersji, użyj polecenia (zastąp „1.9.5” z wybranym numerem wersji):
$ pip zainstaluj pygame==1.9.5
Aby zaktualizować pakiet do najnowszej wersji, uruchom polecenie:
$ pip install --uaktualnij pygame
Aby zobaczyć wszystkie pakiety zainstalowane w środowisku wirtualnym, uruchom polecenie:
$ lista pipsów
Aby zapisać listę zainstalowanych pakietów wewnątrz virtualenv, uruchom polecenie:
$ zamrożenie pipsa > wymagania.tekstMożesz użyć powyższych „wymagań.txt” do zbiorczej instalacji pakietów. Jednym z przypadków użycia jest zduplikowanie istniejącego środowiska poprzez zainstalowanie wszystkich pakietów od podstaw. Aby zbiorczo zainstalować pakiety pip, uruchom polecenie:
$ pip install -r wymagania.tekstKorzystanie ze środowisk wirtualnych Pythona z aplikacjami innymi niż Python
Aplikacje napisane w innych językach programowania mogą być piaskowane w środowiskach wirtualnych Pythona, o ile pip lub inny menedżer pakietów Pythona udostępnia binaria i pakiety dla tych alternatywnych języków programowania/frameworków.
Oto mały przykład wyjaśniający instalację Node.js w środowisku wirtualnym Pythona. Uruchom kolejno następujące polecenia:
$ python3 -m venv my_node_env$ source my_node_env/bin/activate
$ pip zainstalować koło
$ pip zainstaluj nodeenv
$ nodeenv -p
$ nodeenv --wersja
$ node --wersja
Gdy to zrobisz, będziesz miał całkowicie odizolowany węzeł.środowisko js. Możesz utworzyć dowolną liczbę środowisk wirtualnych dla różnych węzłów.aplikacje js. Pakiety instalowane przez menedżera pakietów npm będą ograniczone tylko do aktywowanego środowiska wirtualnego.
Wniosek
Tworzenie wirtualnego środowiska Pythona to doskonały sposób na konteneryzację środowisk programistycznych. Każde środowisko wirtualne ma swój własny plik binarny Pythona i własny niezależny zestaw pakietów. Tworzenie wielu aplikacji Pythona w tym samym systemie może szybko zanieczyścić katalog domowy i główny, a środowiska wirtualne ułatwiają ich utrzymanie.