At 06:24 PM 12/7/2006 +0200, Ilias Lazaridis wrote: >Looks somehow like this: > > >from distutils.core import run_setup >dist = run_setup( setuppys[0],None,'init') >print dist > >loaded_components = [] >module = [] > >import pkg_resources >for name in pkg_resources.get_entry_map(dist,'trac.plugins'): > entry_point = >pkg_resources.get_entry_info(dist,trac.plugins', name) > entry_point.load() > >but this fails, I must have missed some point. > >(('Expected string, Requirement, or Distribution', )) > >although "dist" is an: > ><setuptools.dist.Distribution instance at 0x0187E260>
That Distribution is a distutils distribution, not a pkg_resources distribution. >How can I create an egg representing object (from the sources/setup.py), >from which I can load the entry-points afterwards, without having to >generate an egg_info on the file-system? You can take the dist.Distribution object's entry_points and parse it to create an entry point map. See http://peak.telecommunity.com/DevCenter/PkgResources#creating-and-parsing for details. In particular, you want to use: ep_map = EntryPoint.parse_map(dist.entry_points) entry_point = ep_map['trac.plugins'][name] There are several big drawbacks to this approach, because you're basically bypassing the entire eggs system. Here are two of the things that will break when you do this: * Plugins will not be able to depend on other plugins * Plugins will not be able to depend on other Python packages or projects I can't guarantee that there aren't other things that will break, too. I don't recommend that you use this approach in a published or production system, just because you don't like generating the egg-info on disk. It's there for several reasons, not the least of which is that it allows you to ship plugins as single .egg files. See also: http://peak.telecommunity.com/DevCenter/PkgResources#locating-plugins which shows how to do automatic plugin discovery and dependency resolution. This is another example of something that won't work with the approach you're trying to use. _______________________________________________ Distutils-SIG maillist - Distutils-SIG@python.org http://mail.python.org/mailman/listinfo/distutils-sig