Советы по использованию VirtualEnv

admin |
VirtualEnv - это незаменимый инструмент для большинства python разработчиков в наши дни. Эта заметка сделана в основном для самого себя, но я решил выставить её на публику, потому что она может оказаться очень полезной и остальным.

Для запуска своего проекта ReadTheDocs я хотел автоматически включать процесс celery, который будет осуществлять создание документации. Так как я использую Ubuntu, их встроенный сервис upstart показался мне хорошим выбором для решения своей задачи. Мне действительно нравится upstart из-за своей простоты конфигурации. Вот кстати неплохой мануал по командам.

Итак, решая проблему, выяснилось, что для того что бы войти в контекст virtualenv, совсем не обязательно манипулировать переменной PYTHONPATH, достаточно просто вызвать правильный скрипт внутри окружения



Так как я хотел запускать celery при старте операционной системы из под определённого пользователя, пришлось использовать команду sudo. Окончательный файл конфигурации upstart выглядел следующим образом:



Добавление site-packages после создания виртуального окружения

Иногда бывает нужно вырваться из окружения, которое вы создали с флагом --no-site-packages. Сделать это очень просто. Достаточно стереть файл no-global-site-packages.txt в папке lib/python2.x. После этого вы сможете вновь использовать библиотеки, установленные в глобальный резпозиторий установки. Также этот трюк должен работать и в обратную сторону - добавьте этот файл для полной изоляции вашего окружения.

Выкладка

Выкладка с помощью virtualenv и apache довольно хорошо освещена, я рекомендую посмотреть на вот эти примеры использования. Основная идея всё же состоит в том, что вам нужно добавить ваше виртуально окружение в PYTHONPATH. Для Apache, в wsgi файле добавьте примерно следующие строки:


Ваши советы:

Хотелось бы услышать ваши рекомендации использования virtualenv в комментариях.

(Данная статья является вольным переводом VirtualEnv Tips)
Теги: Share
Комментарии (4)
zzz #
Посоветовать могу только одно: pip. Вместо с virtualenv это незаменимый инструмент.
0
zealotous #
После текста
>Окончательный файл конфигурации upstart выглядел следующим образом:
Должен быть какой-нибудь код?
Или сразу должен идти следующий заголовок "Добавление site-packages после создания виртуального окружения"?
0
zealotous #
Извините, всё нормально отображается. Из-за аддона FireFox NoScript, который блокировал скрипт с сайта showmescript, который отображает код.
0
admin #
код теперь вставляется без яваскрипта, так что в будущих статьях такого произойти не должно даже если будет включен noscript :)
0
aleha #
извините, пробую оставить коммент