Как создавать и развертывать веб-приложения на Python

У меня есть веб-приложение Python, состоящее из нескольких пакетов Python. Как лучше всего создать и развернуть это на серверах?

В настоящее время я развертываю пакеты с помощью Capistrano, устанавливаю пакеты в virtualenv с помощью bash и настраиваю серверы с помощью марионетки, но я хотел бы перейти к решению, основанному на Python.

Я немного искал zc.buildout, но мне непонятно, для чего я могу / должен его использовать.

Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
18
0
4 396
5

Ответы 5

Будут ли SCons делать то, что вы хотите?

http://www.scons.org/

pyinstall похоже, что это должно быть более простое решение для вас. По крайней мере, что касается упаковки содержимого Python и установки в virtualenv. Я не знаю питонического способа настройки сервера ...

Асфальтоукладчик - это работа rake / make для python. Я не знаю, это то, что вы ищете, до сих пор не нашел ничего эквивалентного марионетке для python ...

Я использую Mercurial как свою систему SCM, а также для развертывания. Это просто вопрос клонирования репозитория из другого, а затем извлечение / обновление или выборка обновят его.

Я использую несколько экземпляров репозитория - один на сервере разработки, один (или несколько, в зависимости от обстоятельств) на моем локальном компьютере, один на производственном сервере и один главный репозиторий, доступный для большей части Интернета (хотя только по SSH).

Единственное, чего он не делает, - это автоматически обновлять базу данных при ее изменении, но с входящими хуками я, вероятно, тоже смогу это сделать.

Если вы используете SCM, означает ли это, что у вас есть минифицированные файлы в репозитории? Скомпилированные файлы PO тоже? Значит, после каждой фиксации исходного кода коммитер также должен перестраивать двоичные / производные файлы и также фиксировать их?

Almad 06.05.2010 13:27

Фактически, уменьшенные / кешированные версии файлов генерируются на сервере с использованием django-css.

Matthew Schinckel 07.05.2010 16:49

Зависит от вашей инфраструктуры. Мы просто используем пакеты debian и buildbot для их создания.

В других настройках я использую сценарии Ткань. Что касается формата, я просто использую файлы tbz2, но я слышал о людях, которые просто удаляют яйца.

Я настоятельно рекомендую иметь правильную сборку и BuildBot / Hudson для сборки пакетов, поскольку использование SCM превосходит цель и поощряет плохие методы.

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