3

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?

smac89
  • 39,374
  • 15
  • 132
  • 179
flashburn
  • 4,180
  • 7
  • 54
  • 109

1 Answers1

7

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)
Francisco
  • 10,918
  • 6
  • 34
  • 45