Buildout recipes


Deutsche Fassung

zc.buildout is an application deployment system written by Jim Fulton of Zope Corp.. Its goal is to automate building and configuring parts of complex application setups that involve multiple server processes, add-on packages, and testing environments. Buildout is written in Python and makes heavy use of Python eggs, a convenient distribution format for Python packages.

The base buildout package does a lot of book-keeping and provides some infrastructure, while recipes are used to do the actual work of installing things. There's a recipe for installing Python eggs included in the buildout distribution, and more can be found at the Python package index; it has a category devoted to buildout recipes.

I've contributed four recipes so far, which I wrote for testing and running my other Python projects. Two of them have been merged, so there are three recipes remaining:

tl.buildout_virtual_python

Roughly, a virtual Python installation is obtained by linking an existing Python installation to a place inside a buildout. It is writeable by and private to the buildout, avoids compiling Python, and allows using packages installed to the parent Python that might be awkward to install by buildout for some reason. Internally, the recipe makes use of the virtualenv Python package.

tl.buildout_gtk

GTK+ is a GUI library which has a Python interface, PyGTK. This recipe installs the Python interfaces for GTK+ and two more libraries used by it: gobject and cairo. Optionally, it can also install Python bindings for WebKitGTK+.

tl.buildout_apache

This is actually a collection of three recipes for setting up an Apache HTTP server environment: one builds the software itself from source code, the second creates a server root directory including configuration of how an httpd server process behaves and what resources it provides, and the third installs the Python module for the Apache server, mod_python.


2016/02/07