Python

Как создавать виртуальные среды Python и управлять ими

Как создавать виртуальные среды Python и управлять ими
Довольно часто можно увидеть, как разработчики Python устанавливают и обновляют пакеты из стандартных и нестандартных источников для разработки приложений. Причины могут варьироваться от использования более новой версии модуля до использования конкретной версии в случае регресса.

Управлять этими требованиями и вариантами использования может быть сложно, когда разным приложениям требуются разные версии одной и той же библиотеки. К счастью, Python предоставляет надежное решение для изоляции сред разработки с использованием виртуальных сред.

Что такое виртуальная среда Python?

Виртуальная среда Python - это автономное дерево каталогов, которое содержит конкретную установку Python вместе со всеми ее стандартными библиотеками. Приложения, требующие определенной версии библиотеки, могут быть изолированы в этих виртуальных средах, не загрязняя систему или другие реализации Python. Каждая виртуальная среда представляет собой отдельную песочницу, поэтому вы можете создать столько виртуальных сред, сколько захотите.

Создание и управление виртуальными средами

Чтобы создать виртуальные среды в Ubuntu, сначала установите требуемый пакет зависимостей, выполнив команду:

$ sudo apt установить python3-venv

Теперь вы можете создавать виртуальные среды, выполнив команду:

$ python3 -m venv myenv

Выполнение приведенной выше команды создаст виртуальную среду под названием «myenv» в вашем домашнем каталоге. Если вы хотите использовать любую другую версию Python, вы можете заменить «python3» выше на полный путь к местоположению вашего альтернативного двоичного файла Python.

Чтобы активировать созданную выше настраиваемую среду, выполните команду:

$ source myenv / bin / активировать

После активации виртуальной среды приглашение оболочки изменится, чтобы отразить текущую виртуальную среду, которую вы используете. Если вы запустите «sys.path »внутри интерпретатора Python, вы можете увидеть, что виртуальная среда работает правильно. Python теперь будет искать пакеты в только что созданной пользовательской среде.

Если в приглашении оболочки не отображается имя виртуальной среды в качестве префикса, любой файл Python, который вы запускаете, будет использовать вместо этого системный Python. Поэтому перед запуском файла в пользовательской среде необходимо создать исходную виртуальную среду.

Вы можете деактивировать виртуальную среду, выполнив команду:

$ деактивировать

Каждая виртуальная среда Python включает «pyvenv.cfg »файл с ключом« include-system-site-packages », для которого по умолчанию установлено значение« false ». Этот ключ сообщает виртуальной среде, следует ли использовать системные пакеты сайта или нет. Если установлено значение «true», Python в виртуальной среде будет искать системные пакеты в случае, если пакет не найден в виртуальной среде. Это также сделает все установленные системой пакеты доступными для импорта в виртуальную среду.

Чтобы удалить виртуальную среду, вам просто нужно удалить каталог виртуальной среды, и он исчезнет.

Можно создавать и хранить virtualenv на внешних USB-накопителях. Вам потребуется USB-накопитель, отформатированный в файловой системе NTFS или EXT. Файловая система FAT32 не поддерживает символические ссылки, что является требованием для работы виртуальных сред.

Использование диспетчера пакетов Pip для установки пакетов внутри виртуальной среды

Внутри виртуальной среды вы можете использовать диспетчер пакетов pip для установки, обновления и удаления пакетов. Можно понизить или обновить пакет, указав конкретный номер версии.

Вы можете установить пакет с помощью pip, выполнив команду (замените pygame на желаемое имя пакета):

$ pip установить pygame

Репозиторий пакетов pip с возможностью поиска можно найти здесь.

Чтобы удалить пакет, используйте команду:

$ pip удалить pygame

Чтобы увидеть все версии пакета, выполните команду:

$ pip install pygame ==

Чтобы понизить или обновить до определенной версии, используйте команду (замените «1.9.5 ”с желаемым номером версии):

$ pip install pygame == 1.9.5

Чтобы обновить пакет до последней версии, выполните команду:

$ pip install --upgrade pygame

Чтобы увидеть все пакеты, установленные в виртуальной среде, выполните команду:

список $ pip

Чтобы сохранить список установленных пакетов внутри virtualenv, выполните команду:

$ pip freeze> требования.текст

Вы можете использовать указанные выше требования.txt »для массовой установки пакетов. Одним из вариантов использования является дублирование существующей среды путем установки всех пакетов с нуля. Чтобы установить пакеты pip оптом, выполните команду:

$ pip install -r требования.текст

Использование виртуальных сред Python с приложениями, отличными от Python

Приложения, написанные на других языках программирования, могут быть изолированы в виртуальных средах Python, если pip или любой другой менеджер пакетов Python предоставляет двоичные файлы и пакеты для этих альтернативных языков программирования / фреймворков.

Вот небольшой пример, объясняющий установку Node.js в виртуальной среде Python. Выполните следующие команды одну за другой:

$ python3 -m venv my_node_env
$ source my_node_env / bin / активировать
колесо установки $ pip
$ pip install nodeenv
$ nodeenv -p
$ nodeenv --version
$ node --version

После этого у вас будет полностью изолированный узел.js среда. Вы можете создать столько виртуальных сред, сколько захотите, для разных узлов.js приложения. Пакеты, установленные через диспетчер пакетов npm, будут ограничены только активированной виртуальной средой.

Заключение

Создание виртуальной среды Python - отличный способ контейнеризации сред разработки. Каждая виртуальная среда имеет собственный двоичный файл Python и собственный независимый набор пакетов. Разработка нескольких приложений Python в одной системе может быстро загрязнить ваш домашний и корневой каталог, а виртуальные среды упростят их обслуживание.

Топ-5 карт для захвата игр
Все мы видели и любили потоковые игры на YouTube. PewDiePie, Jakesepticye и Markiplier - лишь некоторые из лучших игроков, которые заработали миллионы...
Как разработать игру в Linux
Десять лет назад не многие пользователи Linux могли бы предсказать, что их любимая операционная система однажды станет популярной игровой платформой д...
Порты коммерческих игровых движков с открытым исходным кодом
Бесплатные игры с открытым исходным кодом и кроссплатформенные версии игрового движка можно использовать для игры как в старые, так и в некоторые из с...