Виртуальное окружение в Python

Виртуальное окружение для Питона — очень удобный инструмент при одновременной работе с несколькими проектами. При разработке вы устанавливаете различные библиотеки, да и версия самого Python может отличаться.

Нужен virtualenv для создания виртуальных окружений python, внутри которых может, например, использоваться другая версия python (не та что установлена в системе как основная), свой, особый, набор модулей и приложений (нужных под конкретную задачу). И нужно оно для того чтобы, например, протестировать новую версию модуля, не засоряя и не конфликтуя с основным набор модулей или создать проект который будет использовать строго выбранный набор модулей и в будущем не планируется его обновление, в то время как модули, установленные в системе, как основные, могут свободно обновляется.

Использование виртуального окружения позволяет абстрагироваться от библиотек, используемых в системе. Вы создаете виртуальное окружение, активируете его, и все устанавливаемые модули Питона будут установлены в данном виртуальном окружении. Чтобы работать в другом проекте с другими версиями библиотек, достаточно просто переключить виртуальное окружение. Вам понадобятся два инструмента: virtualenv и virtualenvwrapper.

Для начала ставим pip

Virtualenv

virtualenv — собственно утилита для создания виртуальных окружений.

Для установки достаточно выполнить

Или через Debian, Ubuntu:

Создаем новое окружение::

Создание нового виртуального окружения env1 без возможности использования общих пакетов из системы

В текущем каталоге будет создана новая директория с указанным вами названием, куда будут перенесены python, pip и в дальнейшем установлены другие библиотеки.

Часто я создаю окружение непосредственно в каталоге проекта:

После того как вы установили новое окружение, у вас будет следующая структура:

Таким образом вам сразу же доступны изолированные python, pip и easy_install.

Если в операционной системе стоит несколько версий питонов, то virtualenv можно указать какую версию использовать:

Теперь мы можем наполнять новое окружение необходимыми модулями:

Вариант 1:

Вариант 2: сначала активируем наше окружение

В начало строки приглашения в терминале должно будет добавится название нашего окружения (test) это значит, что окружение активировалось. Теперь для всего будет использоваться версия python из этого окружения и видны только модули установленные в это окружение.

Ставим нужные модули:

Что-бы выйти из активированного окружения просто набираем

Активация виртуального окружения производится командой
<имя виртуального окружения>\Scripts\activate

Установка пакетов в виртуальное окружение env1:

Экспорт списка установленных в виртуальном окружение env1 пакетов в файл packageslist.txt (virtualenv позволяет в новом окружении установить пакеты, используя файл packageslist.txt):

Установка пакетов, указанных в файле packageslist.txt в виртуальное окружение env1:

virtualenvwrapper

Для более удобной работы с virtualenv рекомендуется поставить утилиту под названиемvirtualenvwrapper. Это специальная надстройка над virtualenv, которая избавит от необходимости заходить в определенную папку для включения виртуального окружения и обеспечит прочие «ништяки». Поставив ее, можно будет переключаться между виртуальными окружениями одним взмахом руки одной командой, вызванной откуда угодно. Итак, устанавливаем:

или

Создаем папку, где будут лежать виртуальные окружения

find / -name ‘virtualenvwrapper.sh’ 2>/dev/null

Добавляем в ~.bashrc:

Чтобы наши изменения настроек вступили в силу без перезагрузки, запускаем на выполнение файл .profile:

Теперь работа с виртуальными окружениями стала еще проще:
mkvirtualenv env_name1     — создать в папке с вирт.окружениями окружение «env_name1»
workon env_name1              — переключится в окружение «env_name1»
lsvirtualenv                           — вывести список доступных виртуальных окружений
rmvirtualenv env_name1      — удалить виртуальное окружение «env_name1»
deactivate                              — выйти из текущего виртуального окружения

Установка virtualenvwrapper-win

При установке скрипты virtualenvwrapper размещаются в %PYTHONHOME%\Scripts.

Для установки выполните команды:

 Ставим virtualenvwrapper Linux

Создаем папку, где будут лежать все окружения

Добавляем в файл ~/.bashrc следующие содержание

Приминяем изменения:

Создаем новое окружение:

Так можно переключаться

Активируем:

Деактивируем

Удаляем

mod_wsgi

Для работы wsgi с созданным окружением добавляем папку site-packages из этого окружения в видимый путь:

cron

Что бы добавить в cron задачу написанную с использованием модулей из созданного окружения надо просто вызвать используемый python из этого окружения:

virtualenv and virtualenvwrapper on Ubuntu 14.04

https:://virtualenvwrapper.readthedocs.io/en/latest/

https:://adw0rd.com/2012/6/19/python-virtualenv/

https:://masnun.com/2014/06/27/python-and-django-on-vagrant.html