среда, 8 августа 2012 г.

virtualenv wrapper - удобная обертка над virtualenv

Что такое virtualenv никакому разработчику на python и рассказывать не нужно, но не все знают (или это только я как-то пропустил), что есть удобная обертка над ним, позволяющая производить все операции с виртуальным окружением гораздо быстрее. Называется соответственно - virtualenv wrapper.

Ставится, как обычно, через pip:
$ pip install virtualenvwrapper

После установки нужно сделать пару манипуляций для его конфигурирования.

Открываем ~/.bash_login или ~/.profile и добавляем туда строки:

export WORKON_HOME=~/YourEnvs   #здесь нужно прописать ваш путь к папке, где вы хотите хранить окружения
source /usr/local/bin/virtualenvwrapper.sh

Сохраняем, открываем новую сессию терминала, делаем папку с окружениями:

$ mkdir -p $WORKON_HOME

Чтобы создать новое окружение, пользуемся командой mkvirtualenv

$ mkvirtualenv someenv

После создания, нас сразу переключит на текущее окружение. Все, можно ставить что-нибудь через pip, например:

(someenv)$ pip install django
Downloading/unpacking django
  Downloading Django-1.4.tar.gz (7.6Mb): 7.6Mb downloaded
  Running setup.py egg_info for package django
Installing collected packages: django
  Running setup.py install for django
    changing mode of build/scripts-2.6/django-admin.py from 644 to 755
    changing mode of /.../virtualenvs/someenv/bin/django-admin.py to 755
Successfully installed django
Cleaning up...

Можем посмотреть список пакетов:

(someenv)$ pip freeze
Django==1.4
wsgiref==0.1.2

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

(someenv)$ mkvirtualenv env2   #делаем новое окружение
...
(env2)$ workon   #смотрим список всех
someenv
env2
(env2)$ workon someenv   #меняем окружение
(someenv)

Если захотим деактивировать окружение, то используем deactivate:

(someenv)$ deactivate

Вот так.

1 комментарий:

  1. Не забываем юзать mkvirtualenv --no-site-packages
    И лучше сделать на source /usr/local/bin/virtualenvwrapper.sh алиас, а не просто вставлять его в .profile - будет работать быстрее когда он не нужен

    ОтветитьУдалить