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

Представь, что у тебя два проекта. Для одного требуется Джанго версии 1.6, а для другого – 1.10. Установленной можно иметь только одну версию пакета.

Пришлось бы каждый раз при переключении между этими проектами удалять одну версию пакета и устанавливать другую. Это неудобно и раздражает. А если таких пакетов много, то терпеть подобное совершенно невозможно.

virtualenv

Решение в установке всех пакетов для каждого проекта отдельно. Модули можно устанавливать не глобально, а в отдельную кучку для каждого проекта.

Такая кучка называется виртуальным окружением.

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

Прочитай про виртуальные окружения из "Автостопом по Питону". Там всё, что надо знать про virtualenv.

Пример использования:

$ virtualenv название_папки_виртуального_окружения
$ source название_папки_виртуального_окружения/bin/activate

virtualenvwrapper

Виртуальное окружение – удобная штука, но добавляет пару действий: при переключении к другому проекту в него нужно зайти, вспомнить, где живёт окружение и активировать его.

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

Как установить и пользоваться написано по ссылке выше.

venv

Стандартное решение для создания виртуальных окружений в Питоне версии 3.3 и старше. Различия с virtualenv минимальны. Ссылка на документацию.

Плюсы:

  • Идет в комплекте с Питоном3.
  • Считается решением по умолчанию, а значит, меньше проблем с совместимостью.
  • Создаёт framework-build Питона вместо обыкновенного для OSX. Такой билд необходим для правильной работы некоторых библиотек, к примеру, matplotlib и pyplot. Подробнее об этом можно почитать здесь.

Минусы:

  • Нет надстроек, написанных для virtualenv.

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

$ python3 -m venv --copies /полный/путь/до/папки/виртуального/окружения
$ # --copies активирует копирование файлов вместо создания symlinks. С последними не дружит PyCharm.

$ # в Ubuntu доступна также короткая запись — alias pyvenv
$ pyvenv папка/для/виртуального/окружения

Если удобного псевдонима в ОС нет, то его можно создать самостоятельно. Добавь себе в .bashrc (для Linux) или в .bash_profile (для Маков) строку:

pyvenv() { /usr/local/bin/python3 -m venv --copies ./$1; }

Бонус для маководов

Если у тебя Макось, то в качестве оболочки терминала рекомендую iTerm2. Он умеет много полезного по сравнению с обычным терминалом.

Например, можно повесить на горячую клавишу создание нового окна и активацию виртуального окруженения.

У меня так: нажимаю ⌃⌘D – и я уже в папке Девмана с активированным окружением. Красота!

Это делается в настройках, вкладке Profiles. Вот как у меня: