We're all development team working on a Django site. Recently we've begun using zc.buildout
inside a virtualenv
. I can see how virtualenv
helps you by making a sandboxed environme开发者_运维技巧nt. After creating a sandbox, one can simply use pip
to install the necessary packages/eggs. I've read that pip
can load all the eggs from a requirements file. This has made me question the benefits and additional functionality of zc.buildout
. zc.buildout
downloads the eggs that you mention in the buildout.cfg
file but as I wrote, you can already do that using pip
and a requirements file. Does zc.buildout
do something more that I'm missing? I can already do all my automation using Fabric.
Buildout does much more than pip; each part is a separate recipe which can run arbitrary python code to get your tasks accomplished. Coupled with dependencies between the parts and update detection, zc.buildout is more comparable to make than to pip.
For example, using the zc.recipe.cmmi
recipe, you can download and compile arbitrary "configure; make; make install" packages. There are recipes to generate files from templates, or create symlinks, or install specific software packages and configure these with buildout-controlled settings all in one step.
Installing eggs according to dependencies is just one of the tricks that zc.buildout supports.
精彩评论