[Distutils] The "incompatible versions" problem

Chris Withers chris at simplistix.co.uk
Sat Nov 28 23:45:33 CET 2009

Lennart Regebro wrote:
>> Whereby, setuptools would raise an exception if the following packages were
>> installed:
>> def setup(
>>  ...
>>  install_requires=['zope.component']
>>  )
> I think this is the problem. I understand what you mean, but it's not
> obvious to me at all that this should raise an error in this
> situation.

...I'm not even suggesting it should ;-) I was just presenting the 
problem, and typing a possibility as I was writing.

> But yet, for your suggestion to work, it has to.

Well, per library. The sketch I put down allowed zope.component 4.0 to 
complain if a library requests zope.component, didn't specify 4.0 and 
newer, but yet 4.0+ ended up installed.

> In
> practice, that means that you, to use zope.component >= 4.0, must give
> a version number. But even when an API changes, it may be possible to
> support both versions. And that would then be impossible to do in this
> case.

Well, that's why I put the hint in zope.component's setup function call 
in the example... It would only be used for incompatible API versions, 
otherwise it could be left out, and any newer version would be fine...


More information about the Distutils-SIG mailing list