On 7/12/05, Paul Moore <[EMAIL PROTECTED]> wrote: > Hmm, yes. It's that "site-packages should be managed by tools" > attitude of mine which muddies the waters a bit. Maybe it's a Windows > thing... > > > As for dependency analysis, the current API to find eggs in a directory is > > pkg_resources.find_distributions(dirname_or_filename), which iterates over > > the egg(s), yielding Distribution objects. Distribution objects have a > > 'depends()' method which returns a list of Requirement objects describing > > what the distribution needs. With that API, you should easily be able to > > create a simple script to dump an egg's dependencies, although I think the > > API may change slightly in a future release. (e.g. depends() will probably > > have a different name before 1.0 rolls around.) > > Cool. I feel the need for such a script (and possibly some others) so > I'll have a go at an egg_utils script/module which I'll contribute > back when I'm happy with it.
I'm playing around with writing some utility/management scripts at the moment. Listing installed distributions is easy, and I see how dependency analysis can be handled with the above APIs. I was looking at an uninstall utility, and hit a possible problem: Given a Distribution object (maybe derived from a user's command line, maybe from selection off a GUI) I can "uninstall" the Distribution by simply removing the egg (file or directory). However, according to the documentation, before I delete files for "the currently installed version of a package", I need to run easy_install -m <package> to ensure that Python doesn't continue to search for it. So, three questions: 1. How can I tell from a Distribution instance if it is "the currently installed version"? 2. How can I do the equivalent of easy_install -m in code? 3. Can eggs be in site-packages, but not locatable via find_distribution? I can't see anything in the Distribution API documentation, and I'm a little hazy on what happens in the face of multiple Distributions of the same package, all in site-packages at once but only one "installed". And I don't have a suitable set of eggs or a "clean" environment to try things out. Thanks, Paul. _______________________________________________ Distutils-SIG maillist - [email protected] http://mail.python.org/mailman/listinfo/distutils-sig
