2010-02-21 14 views
5

Quiero usar buildout para la administración de dependencias, y escuché que distribuir es la nueva forma de administrar la instalación de su proyecto.¿Cómo empiezo con zc.buildout y Distribute?

Sin embargo, los tutoriales sencillos para comenzar parecen ser delgados sobre el terreno. Lo más directo que he visto es el Developing Django apps with zc.buildout de Jacob Kaplan-Moss (mi caso de uso es una aplicación web), pero aún no está muy claro qué hace cada parte de la cadena y cuáles son las mejores prácticas.

¿Cómo comienzo con esto? Quiero hacer las cosas bien.

Respuesta

6

Acabo de comenzar a documentar toda la cadena de herramientas en http://reinout.vanrees.org/weblog/tags/softwarereleasesseries.html (2010-02-25: todavía tengo que escribir la compilación y el artículo de la Pasescript).

Idea básica de la herramienta de herramientas: use setuptools para empaquetar su código python. Como el artículo "desarrollo de aplicaciones django" que mencionas: cada aplicación es su propio paquete. Coloque su código en un directorio y agregue un setup.py. El archivo setup.py contiene el número de versión, nombre, dependencias, etc., y puede ejecutarlo para crear un proyecto-0.1.tar.gz, por ejemplo.

Descargando todo ("easy_install xyz") hace un lío total y completo de site_packages de su sistema de python. Probablemente con versiones incompatibles. Buildout (y por ejemplo virtualenv) le proporciona un entorno aislado: los paquetes instalados solo se instalan localmente en ese virtualenv/buildout.

Mess parte 2: ¿qué versiones quieres? Para obtener cualquier medida de repetibilidad y confiabilidad, debe poder controlar las versiones que usa ("Django 1.0 o 1.1?"). Buildout lo permite.

+0

+1 para el enlace a su serie de lanzamiento de software. (¡Y sigue escribiendo! :)) –

+0

Una nota al margen sobre la diferencia: virtualenv te permite configurar todo como si estuvieras en un entorno aislado. y trabaja normalmente sin estropear el sistema global. Buildout instala todo localmente y cambia la ruta a los paquetes locales. Ambos funcionan bien. – Liorsion

+0

+1 para documentar. – BenDundee

Cuestiones relacionadas