Я буду устанавливать и обслуживать серверное приложение на основе 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 не имеет значения. Вы можете разместить его где угодно. Вам просто нужно запустить source some_venv/bin/activate
, и тогда вы готовы идти.
Традиционное местоположение ~ / .virtualenvs.
Я использую другую настройку, где у меня есть папка ~ / projects, которая содержит разные virtualenvs и содержит код Python для разных проектов. Это приятно и легко, потому что у вас есть все вместе. Для некоторых это может выглядеть немного загроможденным, потому что вы получаете корзину, локальные и другие папки в вашем venv.
Я управляю ими, используя virtualenvwrapper , который находится в репозиториях. У меня еще не было возможности испытать скамью.
Если virtualenvwrapper и virtualenv настроены правильно, рабочий процесс выглядит следующим образом:
mkvirtualenv some_venv
workon some_venv
cdvirtualenv
deactivate
Для приложений 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 и папок приложений для различных приложений, версий и т. д., как я считаю нужным .