Организация нескольких проектов Python для развертывания и / или распространения - PullRequest
0 голосов
/ 22 марта 2012

У нас есть несколько проектов Python, которые зависят друг от друга.Иерархически они организованы следующим образом:

P1
P2
...
Pn

Каждый из них представляет собой проект PyDev в Eclipse, и они прекрасно сосуществуют в этой среде.Мы находимся в процессе структурирования процесса сборки, чтобы мы могли их развертывать и распространять более систематическим образом.В настоящее время мы просто заархивируем эти проекты и скопируем их для развертывания.

Мне нужен совет о том, как выполнить эту задачу с помощью distutils.Наша цель - создать скрипт для создания zip-файла (или tar-файла) с использованием distutils, который содержит весь необходимый код и необходимые данные / свойства из проектов с P1 по Pn.Затем мы сможем развернуть его с помощью setup.py и получить к нему доступ через наш веб-слой на основе DJango.

Моя первая попытка - создать проект, единственная цель которого - создание артефактов развертывания.Это будет параллельно проектам с P1 по Pn, которые называются PBuild.

Это кажется разумным?У меня есть некоторые проблемы с этим подходом.У кого-нибудь есть другие идеи, как это сделать?

1 Ответ

1 голос
/ 22 марта 2012

Существуют разные философии упаковки приложений, но большинство разработчиков Python придерживаются очень минималистичного подхода. Другими словами, вы упаковываете самые маленькие логические единицы, какие только можете.

Итак, ваша цель здесь не в том, чтобы собрать все вместе, а в том, чтобы упаковать каждое отдельное приложение отдельно. Под «приложением» здесь я не подразумеваю обязательно каждое приложение Django, хотя разбиение некоторых приложений на их собственные пакеты также может быть полезным.

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

...