[Distutils] Package install failures in 2.6.3 - setuptools vs Distribute

Paul Moore p.f.moore at gmail.com
Mon Oct 5 17:34:35 CEST 2009

2009/10/5 K. Richard Pixley <rich at noir.com>:
> I'm recent to python packaging and distribution, so let me see if I've put
> this together right from my reading of the various web pages involved over
> the weekend.
> Distutils is currently part of the standard python library.  As such, it's
> released with python, (the reference implementation, anyway).  Distutils is
> currently capable of producing only source archives of packages.  While it's
> capable of producing "built" archives, those archives are machine specific,
> nonrelocatable, untrackable, and have no standard method for distribution
> nor installation nor tracking.
> Setuptools was a third party addition to, (and partial replacement of),
> distutils because distutils wasn't suitably usable nor was it moving fast
> enough.  However, since setuptools was initiated, many of the major features
> of setuptools have since been folded back into distutils, making setuptools
> partially redundant and partly colliding.  Setuptools provides the ability
> to produce machine independent "built" archives and a standard method for
> installing them, (although not for tracking or removing them).  And the
> setuptools approach to installation, easy_install, doesn't play nice with
> the native installers on systems that have them like rpm, debian, etc.
> However, setuptools has fallen into disrepair and so distribute has been
> created, as a friendly branch off a third party tool which in turn was a
> form of branch off of distutils.  And within distribute, there are two lines
> of development, the 0.7 line, which is intended to replace...  I'm
> confused.  Does it replace setuptools or distutils?  And then there's the
> 0.6 branch, which is a branch off 0.7 which is a branch of setuptools which
> is a branch of distutils which is under recent active development and yet it
> also expected to be stable, as much as such a term can be applied to a third
> party branch off a third party of a colliding replacement with a standard
> facility.
> Is that about right?
> If I'm anywhere near right, then I can't really imagine what state you
> intend for the 0.6 branch if not development.

I believe that the Distribute 0.6 branch is a stable continuation of
the setuptools (0.6) stable branch. Distribute 0.6 is intended to
include maintenance-only stable fixes (on the basis that setuptools no
longer provides even that minimal level of progress - something on
which I won't comment for fear of starting another long thread).

Distribute 0.7 is the development branch, looking at new features such
as Python 3 support.

The only other point you missed is that there is not universal
approval of setuptools as a solution to the packaging problem. Take-up
of setuptools (and eggs, and easy install, and the various other
aspects of the setuptools "ecosystem") is variable, with (as far as I
see it) strong support from the web development community, and mixed
reception elsewhere in the Python community.


More information about the Distutils-SIG mailing list