[Distutils] setuptools: package management and explicit version numbers

Paul Moore p.f.moore at gmail.com
Thu Aug 11 00:26:33 CEST 2005

On 8/10/05, Phillip J. Eby <pje at telecommunity.com> wrote:
> At 01:00 PM 8/10/2005 -0500, Ian Bicking wrote:
> >Has there been any progress on some of the package management tools
> >people were talking about?  I.e., list and delete packages?  (At the
> >moment no other features come to mind, but I'm definitely seeing a
> >purpose for these functions)  Someone said they were going to give it a
> >go, but I can't remember who.
> It was Paul Moore.

It was indeed. I haven't forgotten, but a number of things have kept
me from making progress yet. The first is the usual lack of time, but
that's not a limiting factor here, really. I've also been waiting for
the reorganisation of the API that Phillip promised, but again that's
not a real problem - I can use CVS if I need to.

My main issue is one of perspective, I guess. I'm not a package
maintainer, so much of the setuptools stuff (resource APIs, entry
points etc, etc) is not directly relevant to me. I'm a package *user*,
and so my viewpoint is of eggs as an alternative to Windows
bdist_wininst installers.

Hence my interest in management tools - installers come with a number
of benefits "free", as part of the Windows installer architecture -
you get an uninstall "command", you can see a listing of installed
packages, and you can see the version numbers of those packages. Until
I can do the same with eggs, they are a step backwards for me. So
that's why I want to build these features.

OK, so given that I have to write some code to bring eggs onto a par
with installers, where's the benefit of eggs, *to me*, which would
make me want to switch to them in the first place? And that's where I
get stalled. I can see lots of benefits to eggs - for example Trac's
new feature allowing you to just drop an egg containing a plugin into
a predefined directory is really exciting - but they don't apply to my
simple requirement to install packages like cx_Oracle, pywin32,
ctypes, Cheetah, into my standard Python installation.

So - a question for Phillip. Do you see eggs supplanting bdist_wininst
installers on Windows as the standard way of distributing Python
packages? If so, what do you see as the benefit to the end user, which
would prompt that switch? *Not* to the package developer, please note
- ultimately a developer can just as easily run python setup.py
bdist_wininst as python setup.py bdist_egg, and I doubt that users
will switch enthusiastically to using eggs simply because developers
switch to only offering them... (Switch maybe, but I doubt the
enthusiasm :-))

This is more than just a philosophical issue, in that a lot of the egg
infrastructure (development installs, for example) don't seem to me to
be relevant to the end user scenario. So, from my perspective, I don't
understand the imperatives which make them useful, and consequently I
can't do a good job of designing list/uninstall commands around them.
And I have no need for the facilities, so no incentive to cater for
them (beyond the desire to do a good job...)

As I say, I still intend to do this, but I'm waiting to get a clearer
picture of how eggs fit into the end-user environment (as opposed to
the developer environment) before I do so.

Ian - how this fits in with your requirements, I'm not sure. I really
don't follow your comments at all well, as I don't have the relevant
background (at the level I develop stuff, the prerequisite version
compatibility issues you describe just don't come into it - I only
distribute to a very limited set of targets, all of which are closely
controlled in terms of what is installed, so I have the luxury of
expecting things to "just work"). It's on my list of things to do, to
go back over the various recent postings and try to understand the
developer perspective better. But I still view the end-user side of
things as the first priority.

Hope this helps,

More information about the Distutils-SIG mailing list