分析并输出Python代码依赖的库的实现代码

分析并输出Python代码依赖的库的实现代码,第1张

概述用法:分析一个脚本的依赖:analysis_dependency.pyscript1.py递归分析依赖:analysis_dependency.pyscript1.py-r

用法:
分析一个脚本的依赖: analysis_dependency.py script1.py
递归分析依赖: analysis_dependency.py script1.py -r

#!/usr/bin/env python# enCoding: utf-8# source: https://github.com/MrLYC/ycyc/blob/dev/tools/analysis_dependency.pyimport astimport importlibimport inspectclass Analysis(ast.Nodetransformer): def __init__(self,paths,recursion): self.modules = List() self.paths = List(paths) self.recursion = recursion def add_module(self,module): if module and module not in self.modules:self.modules.append(module) if self.recursion:try: path = inspect.getsourcefile(importlib.import_module(module)) if path:self.paths.append(path)except:pass def visit_import(self,node): for i in node.names:self.add_module(i.name) def visit_importFrom(self,node):self.add_module(node.module) def analysis(self): for p in self.paths:try: with open(p,"rt") as fp: self.visit(ast.parse(fp.read(),p))except:pass return tuple(self.modules)if __name__ =="__main__": import argparse parser = argparse.ArgumentParser() parser.add_argument("paths",nargs="+") parser.add_argument("-r","--recursion",action="store_true",default=False) args = parser.parse_args() analysisor = Analysis(args.paths,args.recursion) for m in analysisor.analysis(): print m

总结

以上是内存溢出为你收集整理的分析并输出Python代码依赖的库的实现代码全部内容,希望文章能够帮你解决分析并输出Python代码依赖的库的实现代码所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/langs/1205040.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-06-04
下一篇2022-06-04

发表评论

登录后才能评论

评论列表(0条)

    保存