从stringvariables导入模块
我正在为嵌套matplotlib(MPL)库,它不同于MPL自己提供的,由感兴趣的子模块包的文档(个人)。 我正在编写Python脚本,我希望能够从未来的MPL版本自动生成文档。 
 我select了感兴趣的子模块/包,并想列出他们的主要类,我将生成列表并使用pydoc 
问题是,我找不到一种方法来指示Python从string中加载子模块。 这是我尝试的例子:
 import matplotlib.text as text x = dir(text) 
。
 i = __import__('matplotlib.text') y = dir(i) 
。
 j = __import__('matplotlib') z = dir(j) 
这里是通过pprint的以上列表的三路比较:

 我不明白在y对象中加载了什么东西 – 它是matplotlib加上其他东西,但它缺less我想要的信息,这是matplotlib.text包中的主要类。 这是截图( x列表)上顶部的蓝色部分 
请不要build议狮身人面像不同的方法。
  __import__函数可能有点难以理解。 
如果你改变
 i = __import__('matplotlib.text') 
至
 i = __import__('matplotlib.text', fromlist=['']) 
 那么i会参考matplotlib.text 。 
 在Python 2.7和Python 3.1或更高版本中,您可以使用importlib : 
 import importlib i = importlib.import_module("matplotlib.text") 
一些笔记
- 
如果你想从子文件夹中导入某些东西,例如 ./feature/email.py,那么代码将看起来像importlib.import_module("feature.email")
- 
如果文件夹中没有 __init__.py文件夹,您不能导入任何内容
我认为importlib.import_module是你在找什么。 (仅适用于Python> = 2.7或3.x):
 importlib.import_module('matplotlib.text') 
花了一些时间试图从列表中导入模块,这是最让我感兴趣的线程 – 但我没有把握___import____的使用 –
所以这里是如何从一个string导入一个模块,并获得相同的行为,只是导入。 并尝试/除了错误的情况下。 🙂
  pipmodules = ['pycurl', 'ansible', 'bad_module_no_beer'] for module in pipmodules: try: # because we want to import using a variable, do it this way module_obj = __import__(module) # create a global object containging our module globals()[module] = module_obj except ImportError: sys.stderr.write("ERROR: missing python module: " + module + "\n") sys.exit(1) 
是的,对于Python 2.7>你有其他的select – 但对于2.6 <,这个工程。