[Distutils] Multi-version import support for wheel files

PJ Eby pje at telecommunity.com
Mon Aug 26 00:14:36 CEST 2013


On Sun, Aug 25, 2013 at 4:32 PM, Paul Moore <p.f.moore at gmail.com> wrote:
> On 25 August 2013 20:53, PJ Eby <pje at telecommunity.com> wrote:
>>
>> FWIW, I would also note that if you use easy_install to install
>> anything, you are quite possibly using multi-version installs without
>> realizing it.  (The __main__.__requires__ API is used in
>> easy_install-generated script wrappers, so there isn't any way you'd
>> know about it without paying specific attention.)
>
>
> Unless I'm missing something, I suspect that this over-counts the number of
> people using multi-version, in the sense that many (the majority?) of
> wrapper scripts using multi-version do not actually need to,because the
> users never install more than one version. And quite likely don't even know
> that they could.

That's just it: if you install two programs, one of which needs
CherryPy 2 and the other CherryPy 3, then with easy_install this just
works, without you having any idea that you even have more than one
version installed, unless you for some reason choose to look into it.

Thus, you don't have to know you have multiple versions installed; it
can trivially happen by way of dependencies you aren't paying
attention to.  The more things you install, the more likely it is you
have two versions hanging around.

(The main limiting factor on conflicts isn't a choice to install
multiple versions, it's the relative dearth of pinned versions and
upper limits on version numbers.  If everything just specifies minimum
versions, you'll end up using the latest version for everything as the
default version.  It's only if a package pins or limits a dependency
that any conflict is possible to begin with.)


More information about the Distutils-SIG mailing list