3-5 July 2006
CERN, Geneva
Europe/Zurich timezone

zc.buildout, an automated application assembly tool

4 Jul 2006, 10:10
40-S2-A01 (CERN, Geneva)


CERN, Geneva

Python Language and Libraries Python Language and Libraries


Mr James Fulton (Zope Corporation)


Applications and application-development environments are often built from parts, such as Python packages, databases, libraries, and configuration. The assembly process can be quite involved. It is best to use tools to automate the assembly process. Setuptools is a project that provides a packaging system for Python. It extends Distutils with the ability to define package dependencies and automated package installation. It provides automated platform-appropriate script generation. It allows multiple versions of packages to be installed, such that different applications can use different package versions as needed. Setuptools is targeted toward installing packages into a Python installation. It is not well suited to installing packages into a development environment. Setuptools assembles applications at run time, leading to undesirable non-determinism when new packages are installed. We have developed an application and framework, zc.buildout, that provides automated application assembly leveraging setuptools. It can be used to assemble any application, but it is especially well suited to and is designed for assembling Python applications. Applications are defined with configuration files. Configuration files specify a collection of parts, along with their configuration data, making up the application. Parts are implemented by recipes. Recipes are defined as setuptools packages. Recipes are provided for installing Python packages and scripts leveraging setuptools' automated installation facilities, providing an improved mechanism for leveraging setuptools in development environments and other situations where installing into a Python installation isn't appropriate. The buildout system provides install-time, rather than run-time application assembly, providing greater predictability.

Primary author

Mr James Fulton (Zope Corporation)

Presentation Materials