[Distutils] buildout 2.2.3: not completely right?

Reinout van Rees reinout at vanrees.org
Mon Nov 3 11:28:55 CET 2014


On 03-11-14 10:22, Reinout van Rees wrote:
> Turns out the `env.best_match(req, ws)` fails on anything that is
> installed globally with a version that doesn't match the one we want.
>
> In my colleague's case, he has nose 1.3.1 installed globally.
> Buildout has a pin on 1.3.4.
> env.best_match() returns a VersionConflict.
>
> So it seems we should ignore that too.

I'm on to something.

The `env.best_match()` works based on the working set. So: why is the 
working set filled with all the system stuff? Normally the working set 
starts out empty!

I did a bit of extra logging and found out that buildout extensions and 
buildout recipes get installed with a system-wide working set. Regular 
requirements are installed based on a n empty working set.


The problem I'm seeing is with pbp.recipe.noserunner (ancient, but 
handy). This has a dependency on "nose" which it finds globally with a 
wrong version.

The other problem is with collective.recipe.sphinxbuilder, which depends 
on jinja2 which is installed globally in some cases ("I need ansible 
installed globally").


=> Why does the buildout install and the extension/recipe install start 
out with a full-blown working set? It might be a left-over from the time 
when we used the globally installed setuptools. The newest bootstraps 
make this unnecessary, right?


Reinout

-- 
Reinout van Rees                          http://reinout.vanrees.org/
reinout at vanrees.org                   http://www.nelen-schuurmans.nl/
"Learning history by destroying artifacts is a time-honored atrocity"


More information about the Distutils-SIG mailing list