Hi all -

I've recently implemented an exception catching mechanism in my py2app bundle code (to report Python failures via the GUI). When the exceptions are caught, py2app isn't able to do any dependency analysis and the plugin is severely stripped down. So I thought no problem, we'll just directly import the modules again at the bottom of the source. This works -- but only to an extent. That is, when the modules are directly imported.

We had placed the libraries into a set of tuples with the module name and a more meaningful end-user name like so:

libraries = (("BlogWrapper", "Blog Syncing"),
             ("MailWrapper", "Email Share Transport"),
             ("POPWrapper", "Email Receive Transport"),
             ("TemplateWrapper", "Publishing Templates"),
             ("RecursiveDiff", "Text Diffing"),
             ("FoundationAdditions", "General"),
             ("BlogManager", "Blog Syncing"),
             ("BlogProfiles", "Blog Configuration"))

When I iterate over the libraries like this:

for library in libraries:
    __import__(library)

No dependencies are discovered. When I do:

import BlogWrapper
import MailWrapper

etc. Everything works correctly. I'm trying to understand what's happening here and find out how to iterate over the libraries tuples and help py2app do its thing. Maintaining two parts of the code that essentially do the same thing because of a lack of understanding is frustrating and less than ideal.

Any insight, as always, is appreciated.

Cheers,
Blake