– 查找脚本使用的模块 – 导入模块(Python教程)(参考资料)
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文件,必须包含Pythoncode.
modules
-
字典映射模块命名为模块。看到ModuleFinder的用法示例.
的用法示例ModuleFinder
稍后将要分析的脚本(bacon.py):
import re, itertoolstry: import baconhameggsexcept ImportError: passtry: import guido.python.hamexcept ImportError: pass
将输出bacon.py:
from modulefinder import ModuleFinderfinder = 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()))
Sample输出的报告的脚本(可能因架构而异):
Loaded modules:_types:copyreg: _inverted_registry,_slotnames,__all__sre_compile: isstring,_sre,_optimize_unicode_sre:sre_constants: REPEAT_ONE,makedict,AT_END_LINEsys:re: __module__,finditer,_expanditertools:__main__: re,itertools,baconhameggssre_parse: _PATTERNENDERS,SRE_FLAG_UNICODEarray:types: __module__,IntType,TypeType---------------------------------------------------Modules not imported:guido.python.hambaconhameggs
本站所发布的一切资源仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。本站信息来自网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容。如果您喜欢该程序,请支持正版软件,购买注册,得到更好的正版服务。如果侵犯你的利益,请发送邮箱到 [email protected],我们会很快的为您处理。