- 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 содержит больше информации.