[Distutils] Handling the binary dependency management problem

Nick Coghlan ncoghlan at gmail.com
Fri Dec 6 13:33:19 CET 2013


On 6 December 2013 17:21, Ralf Gommers <ralf.gommers at gmail.com> wrote:
> On Fri, Dec 6, 2013 at 6:47 AM, Nick Coghlan <ncoghlan at gmail.com> wrote:
>> With that approach, the existing wheel model would work (no need for a
>> variant system), and numpy installations could be freely moved between
>> machines (or shared via a network directory).
>
> Hmm, taking a compile flag and encoding it in the package layout seems like
> a fundamentally wrong approach. And in order to not litter the source tree
> and all installs with lots of empty dirs, the changes to __init__.py will
> have to be made at build time based on whether you're building Windows
> binaries or something else. Path manipulation is usually fragile as well. So
> I suspect this is not going to fly.

In the absence of the perfect solution (i.e. picking the right variant
out of no SSE, SSE2, SSE3 automatically), would it be a reasonable
compromise to standardise on SSE2 as "lowest acceptable common
denominator"?

Users with no sse capability at all or that wanted to take advantage
of the SSE3 optimisations, would need to grab one of the Windows
installers or something from conda, but for a lot of users, a "pip
install numpy" that dropped the SSE2 version onto their system would
be just fine, and a much lower barrier to entry than "well, first
install this other packaging system that doesn't interoperate with
your OS package manager at all...".

Are we letting perfect be the enemy of better, here? (punting on the
question for 6 months and seeing if we can deal with the install-time
variant problem in pip 1.6 is certainly an option, but if we don't
*need* to wait that long...)

Cheers,
Nick.

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


More information about the Distutils-SIG mailing list