Каково правильное местоположение для поддерживаемой службы virtualenv?

Я буду устанавливать и обслуживать серверное приложение на основе Python 2.7 на сервере Ubuntu (12.04). Модель обслуживания будет заключаться в создании virtualenv и установке там стандартных библиотек приложений (из PyPI) и пользовательских библиотек (на заказ), обновляя их по мере необходимости. Отдельная папка содержит «приложение», которое состоит из файлов конфигурации и специфичных для приложения файлов Python.

Насколько я могу судить, единственные пакеты, предоставляемые Ubuntu, мне нужны - python и python-virtualenv. Я могу сделать пользовательскую установку pew для управления venv - в этом случае я сделаю sudo easy_install pew и приму, что куда бы он ни шел, это правильно (pew отсутствует в репо 12.04).

У меня есть смутное понимание того, что приложения должны жить в /opt или /srv или где-то в этом роде, и что серверное приложение может жить в другом месте, чем пользовательское приложение. Дайте все это:

  • где должен находиться virtualenv?
  • где должна находиться папка серверного приложения?
6
задан 14 February 2014 в 17:32

2 ответа

По существу, местоположение virtualenv не имеет значения. Вы можете разместить его где угодно. Вам просто нужно запустить source some_venv/bin/activate, и тогда вы готовы идти.

Традиционное местоположение ~ / .virtualenvs.

Я использую другую настройку, где у меня есть папка ~ / projects, которая содержит разные virtualenvs и содержит код Python для разных проектов. Это приятно и легко, потому что у вас есть все вместе. Для некоторых это может выглядеть немного загроможденным, потому что вы получаете корзину, локальные и другие папки в вашем venv.

Я управляю ими, используя virtualenvwrapper , который находится в репозиториях. У меня еще не было возможности испытать скамью.

Если virtualenvwrapper и virtualenv настроены правильно, рабочий процесс выглядит следующим образом:

mkvirtualenv some_venv
workon some_venv
cdvirtualenv
deactivate
0
ответ дан 14 February 2014 в 17:32

Для приложений Django Адам Бард рекомендует определить местонахождение вашего virtualenv в /opt/apps/<appname>-env и собственно ваше приложение в /opt/apps/<appname>-env/site. (Большое спасибо don.joey за отличную ссылку.)

Слегка не связанным, я также обнаружил Анти-паттерны развертывания Python Хайнека Шлавака и Развертывание приложений Python с собственными пакетами быть полезным читает.

Исходя из этого, мой собственный обзор стандарта иерархии файловых систем и проверка папки /opt на моем настольном компьютере я провел с:

  • /opt/virtualenv/<env_name> для виртуальной среды
  • /opt/<vendor_name>/<app_name> для папки приложения сервера

Это позволяет мне создавать несколько независимых virtualenvs и папок приложений для различных приложений, версий и т. д., как я считаю нужным .

0
ответ дан 14 February 2014 в 17:32

Другие вопросы по тегам:

Похожие вопросы: