Содержание страницы
5. Дополнительные инструменты и скрипты¶Additional Tools and Scripts
5.1. pyvenv – Создание виртуальных окружений¶pyvenv - Creating virtual environments
Создание виртуальных окружений производится выполнением скрипта pyvenv:
pyvenv /path/to/new/virtual/environment
Выполнение этой команды создает целевой каталог (создавая все родительские каталоги, которых еще нет) и помещает в него файл pyvenv.cfg с ключом home, указывающим на установку Python, из которой была запущена команда. Она также создает подкаталог bin (или Scripts в Windows), содержащий копию двоичного файла python (или нескольких файлов в случае Windows). Также создается (изначально пустой) подкаталог lib/pythonX.Y/site-packages (в Windows это Lib\site-packages).
В Windows может потребоваться запускать скрипт pyvenv следующим образом, если не заданы соответствующие переменные PATH и PATHEXT:
c:\Temp>c:\Python33\python c:\Python33\Tools\Scripts\pyvenv.py myenv
или, что то же самое:
c:\Temp>c:\Python33\python -m venv myenv
Команда, запущенная с -h, покажет доступные параметры:
usage: pyvenv [-h] [--system-site-packages] [--symlinks] [--clear]
[--upgrade] 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 access to the global site-packages dir to the
virtual environment.
--symlinks Try to use symlinks rather than copies, when symlinks
are not the default for the platform.
--clear Delete the environment directory if it already exists.
If not specified and the directory exists, an error is
raised.
--upgrade Upgrade the environment directory to use this version
of Python, assuming Python has been upgraded in-place.
Если целевой каталог уже существует, будет вызвано исключение, если только не указан параметр --clear или --upgrade.
Созданный файл pyvenv.cfg также содержит ключ include-system-site-packages, установленный в true, если venv был запущен с параметром --system-site-packages, и в false в противном случае.
Можно указать несколько путей для pyvenv; в этом случае идентичное виртуальное окружение будет создано в соответствии с заданными параметрами по каждому указанному пути.
После создания venv его можно «активировать» с помощью скрипта в каталоге bin виртуального окружения. Вызов скрипта зависит от платформы: на платформе Posix обычно используется:
$ source <venv>/bin/activate
тогда как в Windows обычно используется:
C:\> <venv>/Scripts/activate
если используется оболочка cmd.exe, или:
PS C:\> <venv>/Scripts/Activate.ps1
если используется PowerShell.
Строго говоря, нет необходимости активировать окружение; активация просто добавляет каталог с исполняемыми файлами venv в начало пути, так что «python» вызывает интерпретатор Python из venv, и можно запускать установленные скрипты без указания полного пути. Однако все скрипты, установленные в venv, должны быть работоспособны и без активации, и автоматически использовать Python из venv.
Деактивировать venv можно, набрав «deactivate» в оболочке. Точный механизм зависит от платформы: например, скрипт активации Bash определяет функцию «deactivate», тогда как в Windows есть отдельные скрипты deactivate.bat и Deactivate.ps1, которые устанавливаются при создании venv.