Содержание страницы
5. Дополнительные инструменты и скрипты¶Additional Tools and Scripts
5.1. pyvenv – Создание виртуальных окружений¶pyvenv - Creating virtual environments
Создание виртуальных окружений выполняется запуском скрипта
pyvenv:
pyvenv /path/to/new/virtual/environment
Running this command creates the target directory (creating any parent
directories that don’t exist already) and places a pyvenv.cfg file in it
with a home key pointing to the Python installation the command was run
from. It also creates a bin (or Scripts on Windows) subdirectory
containing a copy of the python binary (or binaries, in the case of
Windows). It also creates an (initially empty) lib/pythonX.Y/site-packages
subdirectory (on Windows, this is Lib\site-packages).
См. также
Руководство пользователя по упаковке Python: создание и использование виртуальных окружений
В Windows, возможно, придётся вызвать скрипт pyvenv следующим образом, если
отсутствуют соответствующие настройки PATH и PATHEXT:
c:\Temp>c:\Python35\python c:\Python35\Tools\Scripts\pyvenv.py myenv
или, что то же самое:
c:\Temp>c:\Python35\python -m venv myenv
При запуске с флагом -h команда отображает доступные параметры:
usage: venv [-h] [--system-site-packages] [--symlinks | --copies] [--clear]
[--upgrade] [--without-pip]
ENV_DIR [ENV_DIR ...]
Creates virtual Python environments in one or more target directories.
positional arguments:
ENV_DIR A directory to create the environment in.
optional arguments:
-h, --help show this help message and exit
--system-site-packages Give the virtual environment access to the system
site-packages dir.
--symlinks Try to use symlinks rather than copies, when symlinks
are not the default for the platform.
--copies Try to use copies rather than symlinks, even when
symlinks are the default for the platform.
--clear Delete the contents of the environment directory if it
already exists, before environment creation.
--upgrade Upgrade the environment directory to use this version
of Python, assuming Python has been upgraded in-place.
--without-pip Skips installing or upgrading pip in the virtual
environment (pip is bootstrapped by default)
В зависимости от того, как была вызвана функциональность venv, сообщение
об использовании может незначительно отличаться, например, ссылаться на pyvenv
вместо venv.
Изменено в версии 3.4: По умолчанию устанавливается pip, добавлены опции --without-pip и --copies
Изменено в версии 3.4: В более ранних версиях, если целевой каталог уже существовал, возникала
ошибка, если только не был указан параметр --clear или --upgrade. Теперь,
если указан существующий каталог, его содержимое удаляется и
каталог обрабатывается так, как если бы он был только что создан.
Созданный файл pyvenv.cfg также включает ключ include-system-site-packages, установленный в true, если venv запущен с опцией --system-site-packages, и в false в противном случае.
Если не указана опция --without-pip, будет вызван ensurepip для начальной установки pip в виртуальное окружение.
Можно указать несколько путей pyvenv, в этом случае на каждом
из указанных путей будет создан идентичный виртуальный env в соответствии с заданными параметрами.
После создания venv его можно «активировать» с помощью скрипта в каталоге с исполняемыми файлами venv. Вызов скрипта зависит от платформы:
| Платформа | Оболочка | Команда активации виртуального окружения |
|---|---|---|
| Posix | bash/zsh | $ source <venv>/bin/activate |
| fish | $ . <venv>/bin/activate.fish | |
| csh/tcsh | $ source <venv>/bin/activate.csh | |
| Windows | cmd.exe | C:\> <venv>\Scripts\activate.bat |
| PowerShell | PS C:\> <venv>\Scripts\Activate.ps1 |
Строго говоря, нет необходимости активировать окружение; активация просто добавляет каталог с исполняемыми файлами venv в начало пути, так что «python» вызывает интерпретатор Python из venv, и можно запускать установленные скрипты без указания полного пути. Однако все скрипты, установленные в venv, должны быть работоспособны и без активации, и автоматически использовать Python из venv.
Можно деактивировать venv, введя «deactivate» в оболочке. Точный
механизм зависит от платформы: например, скрипт активации Bash определяет
функцию «deactivate», тогда как в Windows есть отдельные скрипты deactivate.bat
и Deactivate.ps1, которые устанавливаются при создании venv.
Новое в версии 3.4: fish и csh скрипты активации.