Тези изисквания и случаи на употреба могат да бъдат трудни за управление, когато различните приложения изискват различни версии на една и съща библиотека. За щастие, Python предлага стабилно решение за изолиране на среди за разработка, използвайки виртуална среда.
Какво е виртуална среда на Python?
Виртуалната среда на Python е самостоятелно дърво на директориите, което съдържа специфична инсталация на Python, заедно с всички негови стандартни библиотеки. Приложения, изискващи определена версия на библиотека, могат да бъдат изолирани в тези виртуални среди, без да замърсяват системата или други реализации на Python. Всяка виртуална среда е отделна пясъчник, така че можете да създадете колкото виртуална среда искате.
Създаване и управление на виртуална среда
За да създадете виртуална среда в Ubuntu, първо инсталирайте необходимия пакет зависимости, като изпълните команда:
$ sudo apt инсталира python3-venvВече можете да създавате виртуални среди, като изпълните команда:
$ python3 -m venv myenvИзпълнението на командата по-горе ще създаде виртуална среда, наречена “myenv” във вашата домашна директория. Ако искате да използвате която и да е друга версия на Python, можете да замените “python3” по-горе с пълен път до местоположението на алтернативния двоичен файл на Python.
За да активирате създадената по-горе персонализирана среда, изпълнете командата:
$ source myenv / bin / activateСлед като виртуалната среда бъде активирана, подканата на черупката ще се промени, за да отрази текущата виртуална среда, която използвате. Ако стартирате „sys.path ”в интерпретатора на Python, можете да видите, че виртуалната среда работи правилно. Python сега ще търси пакети в потребителската среда, която току-що създадохте.
Ако вашият команден ред не показва името на виртуалната среда като префикс, всеки Python файл, който стартирате, вместо това ще използва системния Python. Така че е необходимо да създадете виртуална среда, преди да стартирате файл във вашата персонализирана среда.
Можете да деактивирате виртуална среда, като изпълните команда:
$ деактивираВсяка виртуална среда на Python включва „pyvenv.cfg “, съдържащ ключ„ include-system-site-пакети “, който по подразбиране е настроен на„ false “. Този ключ указва на виртуалната среда дали да използва системни пакети от сайтове или не. Ако е зададено на „true“, Python във виртуална среда ще разглежда системни пакети, в случай че пакет не бъде намерен във виртуалната среда. Той също така ще направи всички инсталирани на системата пакети за внос във виртуалната среда.
За да изтриете виртуална среда, просто трябва да изтриете директорията на виртуалната среда и тя ще изчезне.
Възможно е да създавате и съхранявате virtualenv на външни USB устройства. Ще трябва да имате USB устройство, форматирано в файлова система NTFS или EXT. Файловата система FAT32 не поддържа символни връзки, което е изискване за работа на виртуалната среда.
Използване на Pip Package Manager за инсталиране на пакети във виртуалната среда
Във виртуална среда можете да използвате мениджър на пакети pip, за да инсталирате, надграждате и деинсталирате пакети. Възможно е понижаване или надграждане на пакет, като се посочи определен номер на версията.
Можете да инсталирате пакет с помощта на pip, като изпълните команда (заменете pygame с желаното име на пакета):
$ pip инсталирайте pygame
Тук може да се намери хранилище на пип пакети с възможност за търсене.
За да деинсталирате пакет, използвайте командата:
$ pip деинсталиране на pygame
За да видите всички версии на даден пакет, изпълнете командата:
$ pip инсталирайте pygame ==
За да понижите или надстроите до определена версия, използвайте команда (заменете „1.9.5 ”с желания номер на версия):
$ pip инсталирайте pygame == 1.9.5
За да надстроите пакет до най-новата версия, изпълнете командата:
$ pip install --upgrade pygame
За да видите всички пакети, инсталирани във виртуална среда, изпълнете командата:
$ пип списък
За да запазите списък с инсталирани пакети в virtualenv, изпълнете командата:
$ pip freeze> изисквания.текстМожете да използвате горепосочените „изисквания.txt ”файл за групово инсталиране на пакети. Един от случаите на използване е дублирането на съществуваща среда чрез инсталиране на всички пакети от нулата. За да инсталирате пип пакети на едро, изпълнете командата:
$ pip install -r изисквания.текстИзползване на виртуална среда на Python с приложения, които не са на Python
Приложенията, написани на други езици за програмиране, могат да бъдат изолирани във виртуална среда на Python, стига pip или който и да е друг мениджър на пакети на Python да предоставя двоични файлове и пакети за тези алтернативни програмни езици / рамки.
Ето един малък пример, който обяснява инсталирането на Node.js във виртуална среда на Python. Изпълнете следните команди една по една:
$ python3 -m venv my_node_env$ source my_node_env / bin / activate
$ pip инсталационно колело
$ pip инсталира nodeenv
$ nodeenv -p
$ nodeenv --version
$ node --version
След като приключите, ще имате напълно изолиран възел.js среда. Можете да създадете колкото искате виртуална среда за различен Node.js приложения. Пакетите, инсталирани чрез диспечера на пакети npm, ще бъдат ограничени само до активирана виртуална среда.
Заключение
Създаването на виртуална среда на Python е отличен начин да се съдържат среда за разработка. Всяка виртуална среда има свой собствен двоичен файл на Python и собствен независим набор от пакети. Разработването на множество приложения на Python в една и съща система може бързо да замърси вашия дом и основна директория, а виртуалната среда улеснява поддържането им.