[Distutils] Buildout or distribute raise unnecessary version conflict?

Benji York benji at benjiyork.com
Fri Dec 17 17:01:41 CET 2010


On Fri, Dec 17, 2010 at 10:05 AM, Alan Franzoni <mailing at franzoni.eu> wrote:
> if egg A requires "foolib" while egg B requires "foolib==1.0.0", and
> the latest available version of foolib is "1.0.1", then a version
> conflict error will arise; it's just as if a "naked" egg dependency is
> pinned to the latest available version of a package.

I seem to recall that this is a result of the non-backtracking behavior
of setuptools version resolution.  It's not a bug per se, just that it
doesn't go the extra mile.  If I'm wrong I'm sure someone will correct
me.

> If I just want to install "foo", I'll get foo and mydep 1.0.1 on my
> system. But if I try installing both, I'll get foo, bar and mydep
> 1.0.0, because that will be resolved as the best way to handle all
> dependencies.

Fancier version resolution would be nice, however a library-like package
(as opposed to an app) that requires one and only one version of a
dependency is being antisocial.

You can use zc.buildout to enforce the use of the 1.0.1 version for you
as a work-around:
http://pypi.python.org/pypi/zc.buildout#specifying-version-information-independent-of-requirements
-- 
Benji York


More information about the Distutils-SIG mailing list