У меня есть веб-приложение Python, состоящее из нескольких пакетов Python. Как лучше всего создать и развернуть это на серверах?
В настоящее время я развертываю пакеты с помощью Capistrano, устанавливаю пакеты в virtualenv с помощью bash и настраиваю серверы с помощью марионетки, но я хотел бы перейти к решению, основанному на Python.
Я немного искал zc.buildout, но мне непонятно, для чего я могу / должен его использовать.






Будут ли SCons делать то, что вы хотите?
pyinstall похоже, что это должно быть более простое решение для вас. По крайней мере, что касается упаковки содержимого Python и установки в virtualenv. Я не знаю питонического способа настройки сервера ...
Асфальтоукладчик - это работа rake / make для python. Я не знаю, это то, что вы ищете, до сих пор не нашел ничего эквивалентного марионетке для python ...
Я использую Mercurial как свою систему SCM, а также для развертывания. Это просто вопрос клонирования репозитория из другого, а затем извлечение / обновление или выборка обновят его.
Я использую несколько экземпляров репозитория - один на сервере разработки, один (или несколько, в зависимости от обстоятельств) на моем локальном компьютере, один на производственном сервере и один главный репозиторий, доступный для большей части Интернета (хотя только по SSH).
Единственное, чего он не делает, - это автоматически обновлять базу данных при ее изменении, но с входящими хуками я, вероятно, тоже смогу это сделать.
Фактически, уменьшенные / кешированные версии файлов генерируются на сервере с использованием django-css.
Зависит от вашей инфраструктуры. Мы просто используем пакеты debian и buildbot для их создания.
В других настройках я использую сценарии Ткань. Что касается формата, я просто использую файлы tbz2, но я слышал о людях, которые просто удаляют яйца.
Я настоятельно рекомендую иметь правильную сборку и BuildBot / Hudson для сборки пакетов, поскольку использование SCM превосходит цель и поощряет плохие методы.
Если вы используете SCM, означает ли это, что у вас есть минифицированные файлы в репозитории? Скомпилированные файлы PO тоже? Значит, после каждой фиксации исходного кода коммитер также должен перестраивать двоичные / производные файлы и также фиксировать их?