Python: Виртуальное окружение для разработки с помощью virtualenv

Для Python существует отличный инструмент — virtualenv. Если вы являетесь разработчиком, то для вас он должен быть незаменимым. Как вы могли догадаться, он создаёт виртуальное окружения для Python’а. Наверное, вы сталкивались с проблемой когда разные проекты используют разный набор пакетов, но это ещё пол беды, всё гораздо хуже, когда эти множества пересекаются, но требуются разные версии одних и тех же пакетов, которые, к тому же, не полностью совместимы друг с другом. Virtualenv позволяет решить эту проблему достаточно легко.

Установка virtualenv в linux

Под Ubuntu не должно возникнуть никаких проблем, устанавливаем с помощь стандартного пакетного менеджера, например, так:
$ sudo apt-get install python-virtualenv

Создание виртуального окружения для Python

Теперь вы можете создать для каждого вашего проекта своё окружение и работать только в нём. Есть два вида виртуальных окружений — изолированное от установленных в систему пакетов и нет. Я пользуюсь только изолированным вариантом, иногда из-за этого могут возникать какие-то проблемы, чаще всего — это необходимость установить какие-то библиотеки в систему, но обычно это легко и быстро решается, хотя и не всегда. Более того, изолированный вариант обеспечивает большую приближённость к системе где ваш проект будет использоваться, если на той системе вы также воспользуетесь изолированным virtualenv’ом.

Итак, создать виртуальное окружение можно так:
$ virtualenv --no-site-packages venv

Где:

  • —no-site-packages — ключ для создания изолированного окружения;
  • venv — путь где будет создано окружение.

При выборе пути, обратите внимание, что виртуальное окружение обычно нельзя переместить командой mv — оно от этого перестанет работать. Есть флаг для создания “мобильных” виртуальных окружений, но когда я последний раз его пробовал использовать поддержка была только экспериментальной и у меня всё равно всё сломалось.

Использование виртуального окружения

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

  • Загрузить переменные окружения путём выполнения команды:
    $ source venv/bin/activate
  • Каждый раз указывать нужный интерпретатор python, например, для выполнения скрипты main.py:
    ./venv/bin/python main.py

Я пользуюсь первым способом, но, стоит отметить, что команда source отсутствует в командной оболочке sh, поэтому при написании скриптов для для командной строки указывайте bash или zsh в качестве интерпретатора.

После активации, внутри виртуального окружения, любой пакет может быть установлен с помощью pip (хотя, и не только, просто это самый распространённый способ):
(venv) $ pip install Django

Понравилась статья? Поделиться с друзьями:
Комментариев: 2
  1. liminspace

    Используй virtualenvwrapper (для Windows virtualenvwrapper-win) и жизнь станет проще :)

    1. lizz

      Спасибо за совет. По virtualenvwrapper предполагалось написать отдельно, когда дойдут руки, а так использую уже почти год. Да и хотелось бы чуть более, чем просто обзорную статью. :)

Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: