< Python (Русский)

Python (Русский)/Virtual environment (Русский)

virtualenv — это инструмент, используемый для создания изолированного рабочего пространства для приложения Python. Он даёт некоторые преимущества: например, возможность локальной установки модулей, экспорта рабочей среды и выполнения программы Python внутри этого окружения.

Состояние перевода: На этой странице представлен перевод статьи Python. Дата последней синхронизации: 29 января 2022. Вы можете помочь синхронизировать перевод, если в английской версии произошли изменения.

Обзор

Виртуальное окружение (virtual environment) — это каталог, в который устанавливаются некоторые исполняемые файлы и скрипты. Среди файлов есть python для выполнения скриптов и pip для установки других модулей в окружении. Также есть скрипты для активации окружения в различных командных облочках (по одному для bash, csh и fish). По сути, виртуальное окружение имитирует полную системную установку Python и всех необходимых модулей, не вмешиваясь в работу системы, на которой будет запускаться приложение.

В 2017 году был опубликован Pipenv, который управляет всеми вышеперечисленными инструментами: виртуальными окружениями интерпретаторов python, зависимостями пакетов, их активацией и блокировкой версий в Pipfile.

Установка

Python 3.3+ поставляется с модулем venv. Для более старых версий Python можно использовать сторонний инструмент virtualenv.

Пакеты

Установите один из следующих пакетов:

Для Pipenv:

Использование

Все три инструмента похожи.

Создание

Используйте venv или virtualenv для создания виртуального окружения в каталоге вашего проекта. Не забудьте исключить каталог venv из вашей системы контроля версий — для его восстановления достаточно копии pip freeze.

venv

Он входит в состав python (3.3+):

$ python -m venv envname

virtualenv

Доступен в пакете python-virtualenv.

$ virtualenv envname

Активация

Для активации виртуального окружения используйте один из имеющихся скриптов для вашей командной оболочки. Пример для bash:

$ source envname/bin/activate
(envname) $

Теперь команды python и pip будут запускаться и управлять пакетами только внутри виртуального окружения, не затрагивая систему.

Для выхода из виртуального окружения выполните функцию, которую создал скрипт активации:

(envname) $ deactivate

Версии Python

По умолчанию виртуальные окружения создаются с использованием стандартного системного Python. Файл bin/python — это просто символическая ссылка на системный python:

$ ls -l envname/bin/python
lrwxrwxrwx 1 foo foo 15 янв 29 18:48 envname/bin/python -> /usr/bin/python

Если вы хотите использовать другую версию Python внутри виртуального окружения, можно использовать опцию -p/--python у virtualenv:

$ virtualenv -p 3.8 envname
$ ls -l envname/bin/python
lrwxrwxrwx 1 foo foo 18 янв 29 18:48 envname/bin/python -> /usr/bin/python3.8

Также можно использовать pypy3:

$ virtualenv -p pypy3 envname

virtualenvwrapper

virtualenvwrapper позволяет более удобно управлять виртуальными окружениями через командную строку, предоставляя несколько полезных команд для создания, активации и удаления виртуальных окружений. Этот пакет является обёрткой для python-virtualenv.

Установка

Установите пакет python-virtualenvwrapper и добавьте в :

export WORKON_HOME=~/.virtualenvs
source /usr/bin/virtualenvwrapper.sh

Строка может несколько замедлить запуск новой командной оболочки. Для решения проблемы можно использовать , который загрузит virtualenvwrapper только при первом обращении к нему.

Перезапустите консоль для применения изменений. Каталог будет создан автоматически.

Использование

Подробности можно почитать в официальной документации.

Создание виртуального окружения (все опции командной строки, кроме -a, -i, и , передаются в virtualenv, так что можно использовать опцию -p для выбора нужной версии Python):

$ mkvirtualenv my_env

Активация виртуального окружения:

$ workon my_env

Установка пакето внутри виртуального окружения (скажем, Django):

(my_env) $ pip install django

Выход из виртуального окружения:

(my_env) $ deactivate

Pipenv

pipenv упрощает управление через командную строку, предоставляя одну программу, которая выполняет все функции вышеперечисленных инструментов.

Установка

Установите пакет .

Использование

Все команды можно выполнять в папке проекта, и pipenv распознает текущую ситуацию — найдёт виртуальное окружение в текущем каталоге и будет использовать его.

Подробности в документации: , , .

Смотрите также

gollark: Would the egg they're offering not end up going to 6D0H anyway if you took it?
gollark: Assuming my maths is right, only about 30000 5-long `bug` codes can exist.
gollark: I would say "a destiny of being traded on to code collectors for some other dragon" but apparently not.
gollark: Or "So, XD x".
gollark: Also, presumably the rarer alts of common ones, like red dorsals and tan ridgewings.
This article is issued from Archlinux. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.