从字符串变量导入模块

我正在为嵌套matplotlib(MPL)库编写一个文档(Personal),它与MPL自己提供的库不同,它是由感兴趣的子模块包提供的。我正在编写Python脚本,我希望它能够从未来的MPL版本中自动生成文档。
我选择了感兴趣的子模块/包,并希望列出它们的主要类,我将从这些类生成列表,并使用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对上述列表进行3种方式的比较:

我不明白什么是装在里面的y对象-它的底部matplotlib还有其他的东西,但是它缺少我想要的信息,这是主要的类。matplotlib.text包裹。这是屏幕截图上蓝色的部分(x清单)

请不要建议狮身人面像是不同的方法。


慕哥9229398
浏览 386回答 3
3回答

阿晨1998

我花了一些时间试图从一个列表中导入模块,这就是我在那里的大部分时间-但是我没有掌握_import_-的用法。下面是如何从字符串导入模块,并获得与只导入相同的行为。并尝试/除了错误情况。*)&nbsp;&nbsp;pipmodules&nbsp;=&nbsp;['pycurl',&nbsp;'ansible',&nbsp;'bad_module_no_beer'] &nbsp;&nbsp;for&nbsp;module&nbsp;in&nbsp;pipmodules: &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;try: &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#&nbsp;because&nbsp;we&nbsp;want&nbsp;to&nbsp;import&nbsp;using&nbsp;a&nbsp;variable,&nbsp;do&nbsp;it&nbsp;this&nbsp;way &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;module_obj&nbsp;=&nbsp;__import__(module) &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#&nbsp;create&nbsp;a&nbsp;global&nbsp;object&nbsp;containging&nbsp;our&nbsp;module &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;globals()[module]&nbsp;=&nbsp;module_obj&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;except&nbsp;ImportError: &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sys.stderr.write("ERROR:&nbsp;missing&nbsp;python&nbsp;module:&nbsp;"&nbsp;+&nbsp;module&nbsp;+&nbsp;"\n") &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sys.exit(1)是的,对于python 2.7>您还有其他选项-但是对于2.6<,这是可行的。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python