Как начать работу с zc.buildout и распространять? - PullRequest
5 голосов
/ 21 февраля 2010

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

Тем не менее, простые учебники для начала кажутся тонкими на земле. Самое прямое, что я видел, это Джейкоба Каплана-Мосса, разрабатывающего приложения для Django с помощью zc.buildout (мой пример использования - веб-приложение), но до сих пор не очень ясно, что именно цепочка делает, и каковы лучшие практики.

Как мне заняться этим? Я хочу все делать правильно.

Ответы [ 2 ]

6 голосов
/ 25 февраля 2010

Я только что начал документировать всю цепочку инструментов на http://reinout.vanrees.org/weblog/tags/softwarereleasesseries.html (2010-02-25: все еще нужно написать сборку и статью в pastescript).

Основная идея toolchain: используйте setuptools для упаковки вашего кода на python. Как и в статье «Разработка django-приложений», о которой вы упомянули: каждое приложение имеет свой собственный пакет. Поместите свой код в каталог и добавьте файл setup.py. Setup.py содержит номер версии, имя, зависимости и так далее, и вы можете запустить его, например, для создания вашего проекта-0.1.tar.gz.

Загрузка всего ("easy_install xyz") быстро вносит полный беспорядок в site_packages вашей системы python. Вероятно, с несовместимыми версиями. Buildout (и, например, virtualenv) предоставляет вам изолированную среду: установленные пакеты устанавливаются только локально для этого virtualenv / buildout.

Беспорядок часть 2: какие версии вы хотите? Чтобы получить какую-либо меру повторяемости и надежности, вы должны иметь возможность контролировать используемые вами версии («Django 1.0 или 1.1?»). Buildout позволяет это.

0 голосов
/ 26 февраля 2010

Вы, вероятно, уже нашли его, но уже проверили сайт компоновки уже?

...