[Distutils] Including soabi tag in --user path?

Nick Coghlan ncoghlan at gmail.com
Sat Jul 15 01:51:54 EDT 2017


On 15 July 2017 at 14:41, Nathaniel Smith <njs at pobox.com> wrote:
>> _psutil_osx.cpython-35m-darwin.so
>
> Right, but this only helps if you install multiple builds of the same
> package on top of each other. Which Debian is able to arrange, so PEP
> 3149 solves their problem. But the --user dir is managed by pip, and
> if you try to install a cpython-35dm package on top of a cpython-35m
> package, then pip will helpfully remove the first before installing
> the second. (And this is really the only reasonable thing for pip to
> do.) So in practice any given package in the --user dir can only
> support one SOABI variant, even though all the SOABI variants use the
> same dir.

Well, sort of - it's not intrinsic to *pip* or *Python* that this
happens, it's an artifact of the fact that even though the
compatibility tagging scheme allows for it, folks don't tend to
publish "multi-SOABI" wheel files (where the 35dm and 35m binaries are
in the same wheel), so installing one will uninstall the other.

Rather than attempting to change how site-packages works (which
wouldn't help until 3.7+ anyway), the main missing piece in the status
quo is the equivalent of a "mergewheel" operation that creates those
multi-SOABI files and thus allows both sets of binaries to be added to
the same environment (the same way Linux distros do for the system
site-packages directory).

Cheers,
Nick.

P.S. Folks on Python 2.7 are pretty much stuck, though - while
importlib2 and/or filefinder2 *might* be able to help, several of the
pieces needed to fix this properly are Python 3 only.

-- 
Nick Coghlan   |   ncoghlan at gmail.com   |   Brisbane, Australia


More information about the Distutils-SIG mailing list