Problem: running “python bootstrap.py” or “bin/buildout” often produces scripts that mix up the Python package search path due to some packages being installed system-wide. Version conflicts result.
Workaround: use “python -S bootstrap.py” and “python -S bin/buildout”. Magically, no more version conflicts.
I wish I had thought of that before. Duh!
Update: Another tip for new zc.buildout users I’ve been meaning to mention is that you should create a preferences file in your home directory so that downloads and eggs are cached centrally. This makes zc.buildout much friendlier. Do this:
mkdir ~/.buildout echo "[buildout]" >> ~/.buildout/default.cfg echo "eggs-directory = $HOME/.buildout/eggs" >> ~/.buildout/default.cfg echo "download-cache = $HOME/.buildout/cache" >> ~/.buildout/default.cfg
It seems a bit silly that zc.buildout doesn’t have these settings by default. They make zc.buildout behave a lot like Apache Maven, which is what a lot of Java shops are using these days. Both zc.buildout and Maven are great tools once you get to know them, but both are a real pain to understand at first.