[Python-Dev] PEP 365 (Adding the pkg_resources module)

Paul Moore p.f.moore at gmail.com
Thu Mar 20 10:33:53 CET 2008


On 20/03/2008, zooko <zooko at zooko.com> wrote:
> On Mar 19, 2008, at 3:23 PM, Guido van Rossum wrote:
>
>  > If other people want to chime in please do so; if this is just a
>  > dialog between Phillip and me I might incorrectly assume
>  > that nobody besides Phillip really cares.
>
> I really care.  I've used setuptools, easy_install, eggs, and
>  pkg_resources extensively for the past year or so (and contributed a
>  few small patches).  There have been plenty of problems, but I find
>  them to be overall useful tools.

I'll chime in here, too. I really want to like
setuptools/easy_install, but I don't. I'll try to be specific in my
reasons, in the hope that they can be addressed. I know some of these
are "known about", but one of my meta-dislikes of setuptools is that
known issues never seem to get addressed (I know, patches accepted,
but I haven't got the time either...)

1. No integration with the system packager (Windows, in my case). If I
do easy_install nose, then nose does not show up in add/remove
programs. That significantly affects the way I manage my PC.

2. No uninstaller. After easy_install nose, how do I get rid of it
later? Searching for files to delete (even if there are only a few
obviously named ones) is not good enough.

3. The pkg_resources documentation (in particular, that's the one I've
tried to follow) is extremely hard to read. Partly this is just style,
but it's partly because it is couched in very unfamiliar terms
(distributions, working sets, interfaces, providers, etc). It's also
*huge*. A tutorial style overview, supported by API detail, would be
far better.

4. Hard to use with limited connectivity. At work, I *only* have
access to the internet via Internet Explorer (MS based proxy). There
are workarounds, but ultimately "download an installer, then run it"
is a far simpler approach for me.

5. Auto-discovery doesn't always work. I'm sorry, I really can't
recall the example at the moment, but sometimes easy_install says it
can't find a package I *know* is available.

6. Splitting the community. Windows users rely heavily on binary
installers (at least, I do). We're starting to get a situation where
some projects provide .egg files, and some provide traditional
(bdist_wininst/bdist_msi) installers. This is bad. One way to do it,
and all that :-)

But if these problems are solved, then I have no problem with seeing
the features of setuptools added to the standard library - resource
APIs, plugin/entry point APIs, ways to create executable scripts, and
such things *should* be standardised. Dependency resolution and
automatic installation isn't something I like (probably because as a
Windows user I've never used such a system, so I mistrust it) but if
it works *with* the system and not against it, I don't mind.

I hope this helps,
Paul.


More information about the Python-Dev mailing list