[Distutils] `pkg_resources.require()`doesn’t see wxPython

Ram Rachum cool-rr at cool-rr.com
Sat Nov 14 14:46:11 CET 2009


Tarek Ziadé <ziade.tarek <at> gmail.com> writes:

> 
> On Fri, Nov 13, 2009 at 9:55 PM, cool-RR <cool-rr <at> cool-rr.com> wrote:
> > I'm having trouble using Distribute's pkg_resources.require(). I posted a
> > question on StackOverflow:
> > http://stackoverflow.com/questions/1728676/pkgresources-require-doesnt-see-
wxpython
> > I hope someone here has an answer.
> > Thanks, Ram.
> 
> If pkg_resources doesn't find it, it might be that it doesn't have
> somehow an egg-info folder or file in site-packages,
> or that the project name is not what you are expecting ('wxpython')
> 
> Look for that egg-info and search for the name of the project. In
> *egg-info/PKG-INFO or in egg-info itself.
> 
> Tarek
> _______________________________________________
> Distutils-SIG maillist  -  Distutils-SIG <at> python.org
> http://mail.python.org/mailman/listinfo/distutils-sig
> 
> 

Well, about the unexpected name thing, I don't think so, cause I printed the 
entire working_set and looked at the names one-by-one, and wxPython wasn't there 
in any kind of different name.

I haven't investigated that egg-info thing, because it doesn't matter much to me 
what is the technical reason for this. The fact that `require` gave a false 
positive, and not even under any special circumstances, just a standard Windows 
installation of wxPython, is reason enough not to use it in my project.

Also, before I came to this conclusion I noticed the kind of error that 
pkg_resources raises:

    pkg_resources.DistributionNotFound: my-dependency

That is not too helpful. Yes, I noticed you have a todo comment on that error to 
make it more informative:

    raise DistributionNotFound(req)  # XXX put more info here

So here's a patch for you:

    raise DistributionNotFound('''The distribution %s is needed for this \
program, but it was not found on this system. Please search for it on the \
internet, then download and install it, then try this program again.''' % req)

Because when a potential user has just downloaded my program and he's trying it 
out, the last thing I want to do is scare him away with an obscure error 
message.

Ram.




More information about the Distutils-SIG mailing list