Как начать работу с zc.buildout и распространять?
Я хочу использовать buildout для управления зависимостями и слышу, что распространять - это новый хороший способ управления установкой вашего проекта.
Тем не менее, простые учебники для начала кажутся тонкими на земле. Самое прямое, что я видел, - это разработка приложений Django Джейкоба Каплана-Мосса с помощью zc.buildout (мой пример использования - веб-приложение), но до сих пор не очень ясно, что делает каждая часть цепочки и что лучшие практики.
Как мне заняться этим? Я хочу сделать все правильно.
2 ответа
Я только начал документировать всю цепочку инструментов по адресу 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 позволяет это.
Вы, вероятно, уже нашли это, но вы уже проверили сайт сборки?