[Distutils] What does it mean for Python to "bundle pip"?
oscar.j.benjamin at gmail.com
Thu Aug 22 19:12:27 CEST 2013
On 22 August 2013 16:33, Chris Barker - NOAA Federal
<chris.barker at noaa.gov> wrote:
> On Thu, Aug 22, 2013 at 6:52 AM, Oscar Benjamin
> <oscar.j.benjamin at gmail.com> wrote:
>> I'm pretty sure the current Windows installer just doesn't bother with
>> BLAS/LAPACK libraries. Maybe it will become possible to expose them
>> via a separate wheel-distributed PyPI name one day.
> Well, the rule of thumb with Windows binaries is that you bundle in
> (usually via static linking) all the libs you need -- numpy could have
> a semi-optimized LAPACK or not, and the user shouldn't know the
> difference at install time. But the trick in this case is that numpy
> is used by itself, but also widely used with external C and Fortran
> that might want LAPACK. (including scipy, in fact...)
> But maybe this is all too much to bite off for pip and wheels. If we
> could get to a state where "pip install numpy" and "pip install scipy"
> would do something reasonable, if not optimized, I think that would be
And actually 'pip wheel numpy' works fine for me on Windows with MinGW
installed. (I don't even need to patch distutils because
numpy.distutils fixed the MinGW bug three years ago!). There's no
BLAS/LAPACK support but I assume it has the appropriate SSE2 build
which is basically what the win32 superpack gives you.
> And it's really not a big deal to say:
> If you want an optimized LAPACK, etc. for your system, you need to do
> something special/ by hand/ etc...
> "something special" may be as simple as "download
> numpy_optimized_just_for_this_machine.whl and install it with pip.
Exactly. Speaking personally, I do all my real computation on Linux
clusters managed by scientific software professionals who have
hand-tuned and pre-built a bewildering array of alternative
BLAS/LAPACK setups and numpy etc. to go with. For me having numpy on
Windows is just for developing, debugging etc. so hard-core
optimisation isn't important.
More information about the Distutils-SIG