[Distutils] setuptools: package management and explicit version numbers

Phillip J. Eby pje at telecommunity.com
Thu Aug 11 00:57:46 CEST 2005


At 11:26 PM 8/10/2005 +0100, Paul Moore wrote:
>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?

Guardedly, I'd say yes -- once the tools mature, I think they'll become a 
popular distribution mechanism.  (OTOH, EasyInstall already converts 
bdist_wininst installers to almost-perfect eggs already, so this is sort of 
moot.)  However, the aim is somewhat more at providing a better way for 
application developers to ship applications, plugins, and needed libraries.


>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

Better applications and packages, because with eggs you can specify 
dependencies.  This means that people will develop smaller more reusable 
packages rather than reinventing wheels, and the overall ecosystem will 
improve in software quality.

Yeah, I know that's not what you meant, but ultimately it is the real 
benefit to doing all this.  :)


>- 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.

Who is an "end user" here?  To me, if you're installing stuff into your 
Python installation, you're obviously a developer.  Eggs are especially 
meant to help install stuff for applications whose users don't even know 
what Python *is* - i.e., "real" end-users in my book.  :)

Now, if by "end user" you mean a developer who isn't distributing anything 
of their own, then yeah, having some egg management tools besides Windows 
Explorer might be nice.  :)  For that matter, even if you are doing more 
sophisticated things with eggs, better management tools would be nice.


>So, from my perspective, I don't
>understand the imperatives which make them useful,

If you look at it from the POV of a non-distributing developer using 
Windows, then the main benefit is going to be having multiple versions of 
something installed at the same time.  A second benefit is dependency 
resolution via EasyInstall; i.e. that you can get all the packages 
something needs to work, without having to track them down one by 
one.  Future additional benefits may include signature checking and the 
like (as soon as we come up with a signature format).



More information about the Distutils-SIG mailing list