[Python-Dev] Standard library vs Standard distribution?

Oscar Benjamin oscar.j.benjamin at gmail.com
Thu Nov 29 20:45:17 EST 2018


On Fri, 30 Nov 2018 at 00:17, Steven D'Aprano <steve at pearwood.info> wrote:
>
> On Thu, Nov 29, 2018 at 01:30:28PM -0800, Nathaniel Smith wrote:
>
> [...]
> > > > https://anaconda.com/
> > > > https://www.activestate.com/products/activepython/
> > > > http://winpython.github.io/
> > > > http://python-xy.github.io/
> > > > https://www.enthought.com/product/canopy/
> > > > https://software.intel.com/en-us/distribution-for-python
> > > > http://every-linux-distro-ever.example.com
>
> > Yeah, I draw two conclusions from the list above:
> >
> > - Paul expressed uncertainty about how many people are in his position
> > of needing a single download with all the batteries included, but
> > obviously he's not alone. So many people want a
> > single-box-of-batteries that whole businesses are being built on
> > fulfilling that need.
>
> I think that's inaccurate: at least some of those are not "box of
> batteries" but "nuclear reactor" distros, aimed at adding significant
> value to above and beyond anything that the stdlib can practically
> include. Things like numpy/scipy, or a powerful IDE.

Of those listed above I have used Canopy, Anaconda and Python-xy. All
three fulfil the same need from my perspective which is that they
include the missing batteries needed even for basic scientific
computing. In the past I've generally solved that problem for myself
by using Linux and having e.g. apt install the other pieces. Since I
can't expect my students to do the same I've always recommended for
them to use something like Anaconda which we/they can for free.

They do include much more than we need so I'd agree that Anaconda is a
nuclear reactor. The things I want from it are not though. Numpy is
not a nuclear reactor: at it's core it's just providing a
multidimensional array. Some form of multidimensional array is
included as standard in many programming languages. In large part
numpy is the most frequency cited dependency on PyPI because of this
omission from the stdlib.

> Another nuclear reactor is packaging itself. Despite pip, installing
> third-party packages is still enough of a burden and annoyance that some
> people are willing to pay money to have a third-party deal with the
> installation hassles. That's a data point going against the "just get it
> from PyPI" mindset.

Not really. Each of those distributions predates the point where pip
was usable for installing basic extension modules like numpy. They
arose out of necessity because particularly on Windows it would be
very difficult (impossible for a novice) for someone to compile the
various packages themselves.

There have been significant improvements in pip, pypi and the whole
packaging ecosystem in recent years thanks to the efforts of many
including Paul. I've been pushing students and others to Anaconda
simply because I knew that at minimum they would need numpy, scipy and
matplotlib and that pip would fail to install those. That has changed
in the last year or two: it is now possible to pip install binaries
for those packages and many others on the 3 major OSes. I don't see
any reason to recommend Anaconda to my students now.

It's not a huge problem for my students but I think an important thing
missing from all of this is a GUI for pip. The situation Paul
described is that you can instruct someone to install Python using the
python.org installer but cannot then instruct them to use pip from a
terminal and I can certainly relate to that. If installing Python gave
you a GUI from the programs menu that could install the other pieces
that would be a significant improvement.

--
Oscar


More information about the Python-Dev mailing list