modulefinder --- 查找脚本使用的模�¶
æº�ç �: Lib/modulefinder.py
该模��供了一个 ModuleFinder 类,�用于确定脚本导入的模�集。 modulefinder.py 也�以作为脚本�行,给出 Python 脚本的文件�作为�数,之�将打�导入模�的报告。
- modulefinder.AddPackagePath(pkg_name, path)¶
记录å��为 pkg_name 的包å�¯ä»¥åœ¨æŒ‡å®šçš„ path 䏿‰¾åˆ°ã€‚
- modulefinder.ReplacePackage(oldname, newname)¶
�许指定�为 oldname 的模�实际上是�为 newname 的包。
- class modulefinder.ModuleFinder(path=None, debug=0, excludes=[], replace_paths=[])¶
该类�供
run_script()å’Œreport()方法,用于确定脚本导入的模å�—集。 path å�¯ä»¥æ˜¯æ�œç´¢æ¨¡å�—的目录列表;如果没有指定,则使用sys.path。 debug 设置调试级别;更高的值使类打å�°è°ƒè¯•消æ�¯ï¼Œå…³äºŽå®ƒæ£åœ¨å�šä»€ä¹ˆã€‚ excludes 是è¦�从分æž�ä¸æŽ’é™¤çš„æ¨¡å�—å��称列表。 replace_paths 是将在模å�—è·¯å¾„ä¸æ›¿æ�¢çš„(oldpath, newpath)元组的列表。- report()¶
将报告打å�°åˆ°æ ‡å‡†è¾“出,列出脚本导入的模å�—å�Šå…¶è·¯å¾„,以å�Šç¼ºå°‘或似乎缺失的模å�—。
- run_script(pathname)¶
分æž� pathname 文件的内容,该文件必须包å�« Python 代ç �。
- modules¶
一个将模å�—å��ç§°æ˜ å°„åˆ°æ¨¡å�—çš„å—典。 请å�‚阅 ModuleFinder 的示例用法。
ModuleFinder 的示例用法¶
��将分�的脚本(bacon.py):
import re, itertools
try:
import baconhameggs
except ImportError:
pass
try:
import guido.python.ham
except ImportError:
pass
将输出 bacon.py 报告的脚本:
from modulefinder import ModuleFinder
finder = ModuleFinder()
finder.run_script('bacon.py')
print('Loaded modules:')
for name, mod in finder.modules.items():
print('%s: ' % name, end='')
print(','.join(list(mod.globalnames.keys())[:3]))
print('-'*50)
print('Modules not imported:')
print('\n'.join(finder.badmodules.keys()))
è¾“å‡ºæ ·ä¾‹ï¼ˆå�¯èƒ½å› 架构而异):
Loaded modules:
_types:
copyreg: _inverted_registry,_slotnames,__all__
re._compiler: isstring,_sre,_optimize_unicode
_sre:
re._constants: REPEAT_ONE,makedict,AT_END_LINE
sys:
re: __module__,finditer,_expand
itertools:
__main__: re,itertools,baconhameggs
re._parser: _PATTERNENDERS,SRE_FLAG_UNICODE
array:
types: __module__,IntType,TypeType
---------------------------------------------------
Modules not imported:
guido.python.ham
baconhameggs