python动态导入模块、检查模块是否安装

参考链接:http://www.woodpecker.org.cn/diveintopython/functional_programming/dynamic_import.html

 


一 动态导入模块

 

Python的import不能接受变量,所以应该用 __import__函数来动态导入。

 

如下的代码无法正常导入模块

modules = ['OpenSSL', 'Crypto', 'MySQLdb', 'sqlite3', 'zope.interface', 'pyasn1', 'twisted', 'django'] for each in modules: try: import each except Exception, e: print e

这样导入会抛出 No module named each 的异常

 

将 import each 改为 __import__(each)就可以正常导入了。

 

 

 

二 检查模块是否安装

 

使用__import__函数也可以用来检查模块是否已安装,略微修改上面的代码即可。

 

使用imp.find_module()来检查不方面,如find_module('zope.interface')会抛出异常——因为这个函数无法查找子模块。

 

模块加载后,就可以在sys.module这个字典里找到加载的模块名了。

你可能感兴趣的:(exception,python,django,Module,import,each)