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

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

virtualenv

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

Для установки виртуального окружения:

Для создания виртуального окружения:

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

Активация виртуального окружения:

Для деактивации виртуального окружения:

virtualenvwrapper-win

Virtualenvwrapper это порт проекта virtualenvwrapper от Doug Hellmann под любую версию Windows. Virtualenvwrapper удобнее тем, что хранит все виртуальные окружения в одном месте, не засоряя папки с проектами, а также позволяет привязать виртуальное окружение к проекту. При установке скрипты virtualenvwrapper размещаются в %PYTHONHOME%Scripts .

Основные команды virtualenvwrapper

mkvirtualenv

Создает новое виртуальное окружение . По умолчанию виртуальные окружения создаются в %USERPROFILE%Envs . После создания сразу активирует виртуальное окружение.

lsvirtualenv

Выводит список всех доступных виртуальных окружений.

rmvirtualenv

Удаляет окружение. Использует folder-delete.bat

workon [имя]

Если имя указано, то активирует указанное виртуальное окружение. Если запускается без аргумента, то выводит список доступных окружений.

deactivate

Деактивирует виртуальное окружение в возвращается к системным библиотекам python.

На ресурсах, посвященных Python или Django можно часто встретить упоминания неких виртуальных окружений и программы virtualenv. Информация на официальном сайте дает понять, что это кое-что полезное. И не зря его всячески рекомендуют к использованию.

Совсем недавно я переустановил систему и еще не успел поставитьDjango и пр. инструменты. Поэтому, самое время организовать всю дальнейшую работу на основе виртуальных окружений. В статье пойдет речь о том, что такоеvirtualenv, зачем он нужен, как его установить и использовать. Черновая редакция.

Читайте также:  Гто регистрация для школьников официальный сайт новосибирск

Как установить virtualenv или «курица vs яйцо»

На официальном сайте virtualenv в разделе «Installation» рекомендуется устанавливатьvirtualenv через менеджер Python-пакетов pip (командой «pip install virtualenv»). Однако далеко не всегда pip установлен в системе по-умолчанию. Я не стал исключением: команду pipсистема не понимает. Идем на официальный сайт и видим, что pip рекомендуется использовать в пределах виртуального окружения virtualenv. При установке virtualenv, pipустанавливается автоматически. Выходит, официальные сайты обеих программ рекомендуют устанавливать virtualenv через pip, а pip — через virtualenv. Хм.

Примечание: есть, конечно, множество других способов установки того и другого (через easy_install, скачивание deb-пакетов или python-установщиков) — все эти способы также описаны на официальных сайтах или на чьих-то блогах. Но все-таки что-то тянет меня придерживаться рекомендуемых способов от официальных разработчиков.

Если следовать концепции виртуальных окружений — логично использовать pip в пределахvirtualenv, а не глобально во всей системе. Тем более нахаляву , что и поставится он автоматически вместе с virtualenv. Значит, прежде всего нужно устанавливать virtualenv. Как?

На мой взгляд, лучшее Linux-way решение — установка из репозиториев (почему-то этот вариант не упоминается на официальном сайте virtualenv).

1. Для установки virtualenv набираем в терминале:
sudo apt-get install python-virtualenv

2. Создаем папку, внутри которой будут храниться папки будущих виртуальных окружений. Лучше всего создать такую папку в пределах своей домашней директории, чтобы не было проблем с правами доступа. Поскольку вручную копаться в ней врядли придется, сделаем ее скрытой и назовем «.virtualenvs»:
mkdir .virtualenvs

Внутри этой папки можно создавать виртуальные окружения под каждый из наших будущих проектов.

3. Создаем виртуальное окружение внутри папки .virtualenvs. Пусть наше первое виртуальное окружение будет называться «project_one».
cd .virtualenvs
virtualenv project_one

(Аналогично могут создаваться виртуальные окружения для каких-то других проектов).
В результате внутри папки /.virtualenvs/project_one/ создастся маленькая рабочая среда с папками bin/, include/, lib/, local/, содержащими минимальный «набор джентльмена» для работы — python, менеджеры пакетов pip и easy_install. Сюда же могут доставляться все необходимые пакеты, фреймворки (в том числе Django) и утилиты. В пределах каждого виртуального окружения они будут изолированы друг от друга, не оказывая никакого взаимного «паразитного» влияния.

Читайте также:  Что делать если умер андроид

Примечание: во многих руководствах по работе с виртуальными окружениями рекомендуется выполнять команду virtualenv с ключом —no-site-packages. Применение этого ключа позволяет создавать виртуальное окружение, изолированное от системной питоновской папки site-packages, что повышает степень автономности. Так вот в новых версиях virtualenv указывать этот ключ не обязательно, поскольку в них эта опция включена по-умолчанию.

4. Для активации необходимого виртуального окружения нужно зайти в его папку («cd project_one») и выполнить следующее:
source bin/activate

После активации командная строка изменится: перед именем пользователя появится название виртуального окружения в скобках «(project_one)имя_пользователя>@имя_компьютера


Теперь любые команды по установке пакетов (например, «pip install django») или по их удалению будут выполнятся только в пределах активированного окружения.

Для выхода из виртуального окружения и перехода в обычный режим достаточно набрать:
deactivate

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

Следуя, рекомендациям разработчиков, для настройки virtualenvwrapper на нашу папку с виртуальными окружениями, добавляем следующий текст в файл

/.profile (чтобы эти настрйоки выполнялись при каждой загрузке компа):
export WORKON_HOME=$HOME/.virtualenvs
source /etc/bash_completion.d/virtualenvwrapper

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

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

Читайте также:  Проверка подлинности вин 7

Читайте другие интересные статьи

Понравилась статья, расскажи о ней друзьям, нажми кнопку!

Роман

Виртуальное окружение — это изолированное окружение среды (в нашем случае это окружение Python), которое позволяет нам использовать определенные версии приложений.

Зачем оно мне?

Предположим, сейчас ты работаешь над несколькими проектами одновременно, и для каждого из них по тем или иным причинам есть свои определенные особенгсти версий пакетов. Например, на одном проекте у тебя Джанга 1.10, на втором — 1.8 , а на третьем — 1.5, да и в придачу Питон 2-й версии. При этом версии приложений менять ну никак нельзя — придется много чего переделывать да и вообще. Вот для таких ситуаций нам как раз и пригодитя виртуальное окружение, позволяющее использовать разные версии приложений.

Все пакеты, работающие с виртуальным окружением решают одну проблему — они позволяют проектам, которые имеют различные (и часто конфликтующие) зависимости, сосуществовать на одной системе.

Virtualenv

virtualenv — стандартный пакет для работы с виртуальным окружением. Используется вместе с virtualenvwrapper для более удобной работы. Установить и ознакомиться подробнее можно в энциклопедии Девмана

Хоть venv и является самым популярным выбором, существуют другие не менее интересные варианты.

Pyenv

Инструмент, позволяющий изолированно использовать различные версии Python. Например, если тебе нужно запустить твой код на разных версиях Питона (2.6, 2.7, 3.3. ), то это то, что тебе нужно. Для создания полноценного изолированного окружения следует использовать пакет pyenv-virualenv, позволющий пользоваться pyenv и virtualenv одновременно. Список команд с их описанием здесь(на английском).

Установка

Устанавливаем переменные окружения (если у вас Linux, /.bash_profile меняем на «`/.bashrc )

Оставьте ответ

Ваш адрес email не будет опубликован. Обязательные поля помечены *