[Distutils] Why is zc.buildout picking the wrong platform for binary eggs?

Martin Aspeli optilude+lists at gmail.com
Sat Jun 27 15:06:50 CEST 2009


As some of you may know, using lxml on OSX is a big pain because of an 
incompatible system version of libxml2. The solution is to ship binary 
eggs, which we already do for Windows.

Now, as a first test, Stefan has uploaded this egg:


See http://pypi.python.org/pypi/lxml/2.2.1

Now, I'm on OSX 10.5, and I've requested this exact version.

In a virtualenv, this works. It downloads the given binary egg.

In a buildout, it's preferring to download and build the egg itself, and 
it calls it lxml-2.2.1-py2.4-macosx-10.3-i386.egg. That's weird, because 
this machine has never had OSX 10.3 on it. :(

My Python 2.4.6 is installed via darwinports.

Now, I can probably work around this, but we're trying to ensure that 
people have a sane lxml egg that will install cleanly on a number of 
platforms. It's therefore pretty important that the average user doesn't 
get this.

So, I'd like to try and figure out what's going on. How does buildout 
decide which egg to look for? Why is easy_install in a virtualenv 
behaving differently to my buildout?


Author of `Professional Plone Development`, a book for developers who
want to work with Plone. See http://martinaspeli.net/plone-book

More information about the Distutils-SIG mailing list