可视化Python模块的结构

21 投票
4 回答
7721 浏览
提问于 2025-04-16 22:58

有没有什么工具可以用来图形化展示一个Python模块的结构呢?

我在想,如果能画出一个图,显示子模块和类之间的关系,用箭头表示它们之间的导入关系,那就太好了。

4 个回答

0

不太确定有没有现成的工具,但你可以自己解析一下你正在使用的包。你可以遍历这个包的目录结构,记录每个模块里的类,同时也记录它们的导入情况。(如果你只是在处理一个模块,那就只需要检查这个模块里的类和导入的内容,不需要遍历目录。)接下来,你需要逐个检查每个导入的模块,看看它们又导入了什么,直到没有更多的导入为止(要小心循环导入的问题!)。

你可能会发现pydot或者类似的工具在可视化展示结构方面非常有用。

1

我知道这个问题已经很久了。如果有人在找一个可以帮助可视化Python模块结构的工具,可以试试Sourcetrail

这个工具可以帮助你可视化像PyTorch或TensorFlow这样的大型源代码。

它会先给你一个项目的整体概览。

在这里输入图片描述

如果你点击“Classes”按钮,然后选择任何一个class,它会显示这个特定class和其他类及函数之间的关系。

在这里输入图片描述

所有按钮都是可以点击的,能给你一个很好的概览。这能帮助你轻松理解不熟悉的源代码结构。

15

我觉得你想要的是Python的一个库,叫做snakefood

sfood: 给定一组输入文件或根目录,生成文件之间的依赖关系列表;

sfood-graph: 读取依赖关系列表,并生成一个Graphviz的dot文件。(这个文件可以通过Graphviz的dot工具运行,生成一个可以查看或打印的PDF文件);

撰写回答