Introspection

Options

inspect

  • getmembers get member of module, for example: inspect.getmembers(pubs, lambda value:inspect.ismodule(value)), but a module does not appear if not imported already (so confusing)

pkgutil

  • iter_modules iterate modules, and is the right one to use, see examples
  • walk_packages - seems to iter_modules recursively, have not tried...

Examples

for importer, modname, ispkg in pkgutil.iter_modules(package.__path__, prefix):

print "Found submodule %s (is a package: %s)" % (modname, ispkg)

module = __import__(modname, fromlist="dummy")

print "Imported", module