- en
 - Language: ru
 
- Documentation version: latest
 
11. Виртуальная среда¶
Слышали ли вы когда-нибудь о virtualenv? Если вы новичок, то, возможно, вы и не слышали о нем, но если вы опытный программист, то он вполне может быть важной частью вашего набора инструментов.
Итак, что же такое virtualenv? Virtualenv - это инструмент, который позволяет нам создавать изолированные среды python. Представьте, что у вас есть приложение, которому нужна версия 2 библиотеки, а другому приложению нужна версия 3. Как вы можете использовать и разрабатывать оба этих приложения?
Если вы устанавливаете все в /usr/lib/python2.7/site-packages (или любое другое стандартное расположение вашей платформы), легко оказаться в ситуации, когда вы непреднамеренно обновляете пакет.
В другом случае представьте, что у вас есть приложение, которое полностью разработано, и вы не хотите вносить никаких изменений в используемые им библиотеки, но в то же время вы начинаете разрабатывать другое приложение, которому требуются обновленные версии этих библиотек.
Что вы будете делать? Используйте virtualenv! Он создает изолированное окружение для вашего приложения python и позволяет вам устанавливать библиотеки Python в это изолированное окружение вместо того, чтобы устанавливать их глобально.
Чтобы установить его, просто введите эту команду в оболочке:
$ pip install virtualenv
Наиболее важными командами являются:
$ virtualenv myproject$ source myproject/bin/activate
Первая команда создает изолированную среду virtualenv в папке myproject, а вторая команда активирует эту изолированную среду.
При создании virtualenv вы должны принять решение. Хотите ли вы, чтобы virtualenv использовал пакеты из вашей системы site-packages или установил их в site-пакеты virtualenv? По умолчанию virtualenv не будет предоставлять доступ к глобальному site-packages.
Если вы хотите, чтобы ваш virtualenv имел доступ к вашим системам site-packages, используйте переключатель --system-site-packages при создании virtualenv следующим образом:
$ virtualenv --system-site-packages mycoolproject
Вы можете отключить , набрав env:
$ deactivate
Запуск python после деактивации снова будет использовать вашу системную установку Python.
Бонус
Вы можете использовать smartcd, который является библиотекой для bash и zsh и позволяет изменять окружение bash (или zsh) при cd. Это может быть действительно полезно для активации и деактивации virtualenv при смене каталогов. Я использовал его довольно часто и люблю его. Вы можете прочитать больше об этом на GitHub.
Это было лишь краткое введение в virtualenv. Есть еще много интересного; this link содержит больше информации.