To import a module through a function call, use the importlib module (included in Python starting in version 2.7):
import importlib
random = importlib.import_module("random")
The importlib.import_module() function will also import the submodule of a package directly:
collections_abc = importlib.import_module("collections.abc")
For older versions of Python, use the imp module.
Use the functions imp.find_module and imp.load_module to perform a programmatic import.
Taken from standard library documentation
import imp, sys
def import_module(name):
fp, pathname, description = imp.find_module(name)
try:
return imp.load_module(name, fp, pathname, description)
finally:
if fp:
fp.close()
Do NOT use __import__() to programmatically import modules! There are subtle details involving sys.modules, the fromlist argument, etc. that are easy to overlook which importlib.import_module() handles for you.