[Distutils] pip install --upgrade bug on python3.x

Ned Deily nad at acm.org
Wed Jan 9 05:03:14 CET 2013

In article <50EC9DDB.70408 at stackless.com>,
 Christian Tismer <tismer at stackless.com> wrote:

> I've read the discussion which started 5 months ago without solving the
> problem.
> Sorry, when I read the comment
> """Seeing as this bug only can appear in Python 3 with packages that have a
> module called "setuptools" it's a pretty marginal edge case."""
> I was a bit shocked:
> We want to push Python3 as much as possible, and people try to use it over
> and over, but in the end, some setup Problem kills the effort, and it is
> "just python3".
> It happens with a lot of modules, some are so prominent like PySide
> which I want to support to use with Python3.
> But I have to fight Homebrew which installs Python3 (sigh), but not
> PySide :-( and so on.
> The policy for python-dev seems to be to develop Python 3 in the first place
> and eventually backport sth.  to Python 2, but other projects, including
> distutils have their priority in the opposite direction.
> Sorry about this rant, but as an advocate for Python 3 (after years of 
> reluctance)
> I have a hard time to convince my customers and team members to make the
> switch, because I always fall into some trap that makes it hard to defend
> "_the_ better python(tm)".
> The python _is_ arguable better, but it is somehow not the most beloved 
> child,
> and I feel bad persuading people of a thing that always breaks a bit, 
> somewhere.
> It would be great to have an exaple where the opposite happens:
> """Sorry, this breaks a bit, but it is just a cornercase of Python 2.6 , 
> which has anyway no active
> development."""
> So why is it so difficult to just use "except ValueError as e"  ?
> Am I missing the point, or would it not just work with python 2.7 and up?

I'm not sure what you mean by "python-dev" but, for the record, neither 
setuptools, Distribute, or pip are part of the Python standard library.  
Each is an independent third-party project.

Distutils *is* part of the Python standard library and is maintained by 
the Python code development team.  As you probably know, there was a 
major effort to include a replacement for Distutils in Python 3.3: 
"packaging", AKA "distutils2".  One of the reasons that the 
"distutils2/packaging" project arose was because efforts to enhance 
Distutils often ended up breaking compatibility and introducing new 
problems due to its inherent design.  It was decided to freeze the 
existing Distutils code base for new features, instead focusing on its 
replacement.   Late in the development cycle for 3.3, it became clear 
that "packaging" wasn't ready for release and so was removed from 3.3.  
There are now efforts underway to re-examine the whole area with a goal 
for release in Python 3.4 and to reduce the need for and/or complexity 
of third-party add-ons.

 Ned Deily,
 nad at acm.org

More information about the Distutils-SIG mailing list