[Distutils] Expectations on how pip needs to change for Python 3.4

Oscar Benjamin oscar.j.benjamin at gmail.com
Mon Jul 15 16:16:38 CEST 2013

On 13 July 2013 20:59, Paul Moore <p.f.moore at gmail.com> wrote:
> It would be nice to get feedback from "normal users" on this. I suspect that
> the scientific community would make a good cross-section (AIUI there's quite
> a lot of Windows use, and for many people in the community Python is very
> much a tool, rather than a way of life :-)). Does anyone have links into the
> scipy groups? I lurk on the IPython lists, so I could ask there, at a
> pinch...

I don't know if I really count as a normal user but I can describe how
Python is installed on the Windows machines in my faculty for
scientific use.

All our Windows machines have the Enthought Python Distribution (EPD)
installed. This bundles CPython with numpy, scipy, matplotlib,
wxpython, setuptools, pip and a whole load more. Ordinary users do not
need to install numpy etc. since these are pre-installed. The
bootstrap process is probably irrelevant since EPD installs
easy_install and that can be used to install pip if desired. Ordinary
users do not have write access to the EPD installation directory and
so can only use pip/easy_install with --user anyway.

On my own desktop machine which runs Windows all of the Python
installations I use are inside my user directory so there is no
meaningful difference between 'pip install' and 'pip install --user'.

The real problem for us with using e.g. pip to install something like
numpy is that it will not install the appropriate non-Python external
libraries. For example, numpy ships with a just functional BLAS
library but you really want to install and have it link against proper
BLAS/LAPACK libraries. The good free libraries should be compiled on
the target machine and pypi/pip/distutils do not currently help much
with doing this.

Debian (or at least Ubuntu) provides for example the ATLAS library as
a source only package. This means that you can compile it on the
target machine and get the most out of your CPU capabilities while
still using the Debian tools to obtain the dependencies and manage the
build process. The new wheel format will not help with this since even
if there were an ATLAS wheel it would probably be a generic 686 binary
without e.g. SSE.

This is another advantage of using EPD which ships the non-free Intel
MKL library. Python(x, y) is similar to EPD but is GPL'd and ships
with OpenBLAS. Both distributions also ship MinGW which is useful
since it's likely that our Windows machines will not have the
appropriate MSVC version to match up with the CPython version. (They
also don't suffer from Issue12641 so MinGW works).


More information about the Distutils-SIG mailing list