list modules as strings and import them

2019-07-04 10:36发布

问题:

I have a bunch of modules that I need to import. For reasons I not permitted to explain the module names must be stored as strings in a list. In other words I need to do the following:

modules_to_import = ['module1', 'module2', 'module3']
import modules_to_import

Does anybody know if I can to that in python?

回答1:

Use importlib.import_module:

imported_modules = {m: importlib.import_module(m) for m in modules_to_import}

If you want to access the modules as global variables, you'll have to do some hacky stuff, such as assigning to globals():

for module in modules_to_import:
    globals()[module] = importlib.import_module(module)