Dynamically Importing Python Modules
If you ever need to dynamically import Python modules this short function will do the trick. The modules will be imported into the importing module's __main__ scope.
def importMods(path, fromList, asList=None):
"""
This function will import modules into the global scope relative to
this function.
@param path: The path to the module.
@param fromList: A list containing the items to import.
@keyword asList: A one for one match to C{fromList} indicating the
names to be used in the import.
"""
modules = __import__(path, globals(), locals(), fromList, -1)
if not asList: asList = fromList
if len(asList) != len(fromList):
msg = 'len(asList) != len(fromList)'
raise ValueError(msg)
for asMod, mod in zip(asList, fromList):
exec "importMods.func_globals['%s'] = modules.%s" % (asMod, mod)