可视化Python模块的结构
有没有什么工具可以用来图形化展示一个Python模块的结构呢?
我在想,如果能画出一个图,显示子模块和类之间的关系,用箭头表示它们之间的导入关系,那就太好了。
4 个回答
0
不太确定有没有现成的工具,但你可以自己解析一下你正在使用的包。你可以遍历这个包的目录结构,记录每个模块里的类,同时也记录它们的导入情况。(如果你只是在处理一个模块,那就只需要检查这个模块里的类和导入的内容,不需要遍历目录。)接下来,你需要逐个检查每个导入的模块,看看它们又导入了什么,直到没有更多的导入为止(要小心循环导入的问题!)。
你可能会发现pydot
或者类似的工具在可视化展示结构方面非常有用。
1
我知道这个问题已经很久了。如果有人在找一个可以帮助可视化Python模块结构的工具,可以试试Sourcetrail。
这个工具可以帮助你可视化像PyTorch或TensorFlow这样的大型源代码。
它会先给你一个项目的整体概览。
如果你点击“Classes”按钮,然后选择任何一个class
,它会显示这个特定class
和其他类及函数之间的关系。
所有按钮都是可以点击的,能给你一个很好的概览。这能帮助你轻松理解不熟悉的源代码结构。
15
我觉得你想要的是Python的一个库,叫做snakefood
sfood: 给定一组输入文件或根目录,生成文件之间的依赖关系列表;
sfood-graph: 读取依赖关系列表,并生成一个Graphviz的dot文件。(这个文件可以通过Graphviz的dot工具运行,生成一个可以查看或打印的PDF文件);