virtualenv
является инструментом для создания изолированных сред Python. Эта программа создает папку, которая содержит все необходимые исполняемые файлы для использования пакетов, необходимых для проекта Python.
Установка инструмента virtualenv
Это требуется только один раз. virtualenv
программа может быть доступна через распределение. На Debian-подобных дистрибутивов, пакет называется python-virtualenv
или python3-virtualenv
.
В качестве альтернативы вы можете установить virtualenv
с помощью пип :
$ pip install virtualenv
Создание новой виртуальной среды
Это требуется только один раз для каждого проекта. При запуске проекта, для которого вы хотите изолировать зависимости, вы можете настроить новую виртуальную среду для этого проекта:
$ virtualenv foo
Это создаст foo
папку , содержащую оснастку сценариев и копию python
самого двоичного файла. Название папки не имеет значения. После того , как виртуальная среда создана, она является самодостаточной и не требует дальнейшей манипуляции с virtualenv
инструментом. Теперь вы можете начать использовать виртуальную среду.
Активация существующей виртуальной среды
Чтобы активировать виртуальную среду, некоторые оболочки магии требуется , чтобы ваш Python является один внутри foo
вместо системы один. Это цель activate
файл, который вы должны источник в текущую оболочку:
$ source foo/bin/activate
Пользователи Windows должны набрать:
$ foo\Scripts\activate.bat
После того, как виртуальная среда была активирована, python
и pip
исполняемых файлов и все скрипты , установленные модули сторонних те внутри foo
. В частности, все модули , установленные с pip
будут развернуты в виртуальной среде, что позволяет содержимого среды разработки. Активация виртуальной среды также должна добавить префикс к вашему приглашению, как показано в следующих командах.
# Installs 'requests' to foo only, not globally
(foo)$ pip install requests
Сохранение и восстановление зависимостей
Чтобы сохранить модули , которые вы установили через pip
, вы можете перечислить все эти модули (и соответствующие версии) в текстовый файл с помощью freeze
команды. Это позволяет другим быстро установить модули Python, необходимые для приложения, с помощью команды install. Условное название для такого файла requirements.txt
:
(foo)$ pip freeze > requirements.txt
(foo)$ pip install -r requirements.txt
Обратите внимание , что freeze
находится список всех модулей, в том числе переходных зависимостей , необходимых модулей верхнего уровня , которые Вы устанавливали вручную. Таким образом , вы можете предпочесть ремесло requirements.txt
файл вручную , поставив только модули верхнего уровня вам нужно.
Выход из виртуальной среды
Если вы закончили работу в виртуальной среде, вы можете отключить ее, чтобы вернуться к обычной оболочке:
(foo)$ deactivate
Использование виртуальной среды на общем хосте
Иногда это не представляется возможным $ source bin/activate
в virtualenv, например , если вы используете mod_wsgi долевой хоста или если у вас нет доступа к файловой системе, как и в Amazon API Gateway, или Google AppEngine. Для тех случаев , вы можете развернуть библиотеки, установленные в вашем virtualenv и пропатчить sys.path
.
Luckly virtualenv поставляется с скрипт , который обновляет и ваш sys.path
и ваш sys.prefix
import os
mydir = os.path.dirname(os.path.realpath(__file__))
activate_this = mydir + '/bin/activate_this.py'
execfile(activate_this, dict(__file__=activate_this))
Вы должны добавить эти строки в самом начале файла, который будет выполнять ваш сервер.
Найдет bin/activate_this.py
что virtualenv
созданный файл в той же директории вы выполняете и добавить свои lib/python2.7/site-packages
для sys.path
Если вы хотите использовать activate_this.py
скрипт, не забудьте развернуть с, по крайней мере, в bin
и lib/python2.7/site-packages
каталогов и их содержимого.