Советы по использованию 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)
Для запуска своего проекта 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)
>Окончательный файл конфигурации upstart выглядел следующим образом:
Должен быть какой-нибудь код?
Или сразу должен идти следующий заголовок "Добавление site-packages после создания виртуального окружения"?