[Distutils] (How) do setuptools/distribute/pip handle circular dependencies?

Alex Clark aclark at aclark.net
Sat Nov 10 00:11:52 CET 2012

On 2012-11-09 22:56:46 +0000, Vinay Sajip said:

> Vinay Sajip <vinay_sajip <at> yahoo.co.uk> writes:
>> So, according to the declarations, each package depends on the other. Can
>> setuptools / distribute deal with this sort of situation? If so, how does
>> that work?
> My question also applies to pip, of course. I know it uses setuptools /
> distribute under the covers, but I'm not sure if it has additional / different
> dependency resolution logic.

Just a guess, but I think it works "as expected". If you e.g. pip 
install Zope2 you get the install_requires Products.OFSP. In order for 
OFSP installaion to succeed, it's install_requires must be satisfied. 
It doesn't really matter that the deps are circular, as long as they 
are sane. If a dep is not sane (e.g. foo 1.0 requires bar which 
requires foo < 1.0) then installation will fail, regardless of its 
"circularity" or "non-circularity". Also, I don't think there is any 
"circular detection" built in or at least if there is, I've never seen 
any evidence of it in practice.

> Regards,
> Vinay Sajip
> _______________________________________________
> Distutils-SIG maillist  -  Distutils-SIG at python.org
> http://mail.python.org/mailman/listinfo/distutils-sig

Alex Clark · https://www.gittip.com/aclark4life/

More information about the Distutils-SIG mailing list