Главная > Unix-like, Администрирование, общие вопросы, Программирование > Python: Виртуальное окружение для разработки с помощью virtualenv.

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

Пожалуйста, оцените полезность и качество данной статьи. Одна звезда - плохо, 5 - хорошо.
1/5. Мы будем признательны, если вы напишете комментарий с причиной низкой оценки.2/5. Мы будем признательны, если вы напишете комментарий с причиной низкой оценки.3/5. Мы будем признательны, если вы напишете комментарий с причиной низкой оценки.4/5.5/5. (1 голосов, средний: 4,00 из 5)
Загрузка...
  1. liminspace
    4 августа 2013 в 13:46 | #1

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

  2. lizz
    5 августа 2013 в 13:23 | #2

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

  1. Пока что нет уведомлений.