Что такое VirtualEnv?
Инструмент virtualenv создает изолированную среду Python (в виде каталога), которая полностью отделена от общесистемной среды Python.
На самом деле это означает, что любые настройки, сторонние пакеты и т. Д. Из общесистемной среды не отображаются в виртуальной среде, так что это почти как если бы у вас была чистая установка Python.
Это полезно, когда вы хотите получить чистый лист для своих проектов.
Допустим, у вас есть Boto ,
установленный на сайте-пакеты версии 2.7.0, но проект вы только
начинаете нужна новая 2.38.0 версии. Поскольку вы не можете установить
обе версии для всего сайта, вам нужна среда Python, в которой
зависимости будут разделены. Для этого и предназначен инструмент
virtualenv
Почему VirtualEnv полезен?
Python отличается от других, более дружественных к предприятию языков (например, Java) тем, что сторонние библиотеки загружаются и используются во всей системе, а не для отдельных проектов. Это может стать проблемой, если для двух разных проектов требуются разные версии одного и того же пакета.
Таким образом, для каждого проекта, который вы запускаете, вы также можете создать новую виртуальную среду, чтобы гарантировать, что все установленные зависимости не влияют на другие проекты на вашем компьютере.
По мере того, как вы создаете все больше и больше проектов и по мере их развертывания, вы скоро поймете, насколько важно иметь строгое разделение между проектами.
Как вы используете VirtualEnv?
Виртуальные среды легко создавать (и уничтожать), для этого требуется
только virtualenv
, который можно установить с помощью:
$ pip install virtualenv
Чтобы создать новую виртуальную среду, вы, вероятно, захотите сделать что-то вроде этого:
$ virtualenv --no-site-packages myapp
Эта команда создаст следующую структуру каталогов:
- myapp /
- bin /
- включать/
- lib /
Использование --no-site-packages
создает виртуальную среду,
напоминающую чистую установку Python и не содержащую сторонних пакетов,
а только стандартные пакеты Python.
Три перечисленных выше подкаталога содержат все исполняемые файлы
Python, зависимости и пакеты, необходимые для разработки и запуска
программ Python. Он также включает в себя некоторые полезные
инструменты, такие как pip
и easy_install
.
И, наконец, чтобы использовать конкретную виртуальную среду, активируйте ее с помощью:
Scotts-Computer:Projects: scott$ cd myapp/
Scotts-Computer:myapp scott$ source bin/activate
(myapp)Scotts-Computer:myapp scott$
Обратите внимание, что это префикс вашей командной строки с именем
virtualenv (myapp)
), что указывает на то, что ваша текущая среда
Python является виртуальной средой myapp.
Теперь каждый раз, когда вы запускаете скрипт Python, исполняемый файл Python, настройки и пакеты виртуальной среды будут использоваться вместо глобального исполняемого файла Python.
Чтобы прекратить использование виртуальной среды, просто отключите ее, запустив:
(myapp)Scotts-Computer:myapp scott$ deactivate
Scotts-Computer:myapp scott$
Заключение
В Python, как и почти во всех других языках программирования, важно иметь полный контроль над своей средой, чтобы вы точно знали, что происходит с вашим кодом и как его воспроизвести на любой машине.
Виртуальные среды помогают вам в этом, отделяя глобальные конфигурации и код от локального кода.