Как создавать и развертывать веб-приложения Python
У меня есть веб-приложение Python, состоящее из нескольких пакетов Python. Каков наилучший способ создания и развертывания этого сервера?
В настоящее время я развертываю пакеты с Capistrano, устанавливая пакеты в virtualenv с помощью bash и настраивая серверы с марионеткой, но я бы хотел пойти на более основанное на Python решение.
Я немного искал zc.buildout, но мне не понятно, что я могу/должен использовать для него.
Ответы
Ответ 1
В зависимости от вашей инфраструктуры. Мы просто используем debian-пакеты и buildbot для их создания.
В других настройках я использую скрипты Fabric. Что касается формата, я просто использую файлы tbz2, но я слышал о людях, которые просто деполоируют яйца.
Я настоятельно рекомендую иметь правильную сборку и иметь BuildBot/Hudson для создания пакетов, поскольку использование SCM превосходит цель и поощряет плохие практики.
Ответ 2
Paver - это команда rake/make для python. Я не знаю, если это то, что вы ищете, до сих пор не нашли ничего, что эквивалентно марионетке для python...
Ответ 3
Будет ли SCons делать то, что вы хотите?
http://www.scons.org/
Ответ 4
pyinstall похоже, что это должно быть более простое решение для вас. По крайней мере, до того, как упаковывается материал python и устанавливается в virtualenv. Я не знаю о питоническом способе настройки конфигурации сервера...
Ответ 5
Я использую Mercurial в качестве моей системы SCM, а также для развертывания. Это просто вопрос клонирования репозитория от другого, а затем pull/update или fetch обновит его.
Я использую несколько экземпляров репозитория - один на сервере разработки, один (или более, в зависимости от обстоятельств) на моей локальной машине, один на рабочем сервере и один репозиторий "Мастер", доступный для большего Интернета (хотя только SSH).
Единственное, чего он не делает, это автоматически обновлять базу данных, если она изменена, но с входящими перехватами я тоже мог бы это сделать.