python:利用Graphviz和pyreverse 分析类文件自动生成UML图
需求
阅读一些源码时,想直观的看一下它的UML类关系图。
搜索发现已有相关的软件可以实现这个功能。
安装软件
个人开发环境:windows+vscode
- graphviz
在官网安装即可:graphviz
注意:安装好后,将安装路径添加到环境变量中。我的路径是C:\Program Files (x86)\Graphviz2.38\bin
- pyreverse
该程序已集成在pylint模块中,若未安装pylint,需先安装:pip install pylint
使用
操作流程:
-
pyreverse -ASmy -o dot test.py
在命令行(python)下执行该命令,作用:pyreverse 会分析test.py中的类关系,然后生成classes.dot文件。
可指定输出文件名:pyreverse -ASmy -o dot -p test test.py
,运行后会生成classes_test.dot文件。
也可指定分析某个文件夹:pyreverse -ASmy -o dot folder/
注:看其他博客可直接一步生成图片:pyreverse -ASmy -o png test.py
。但我会报错,看提示信息是:只支持输出dot文件。那就再转一下吧。 -
dot -Tpng classes.dot -o test.png
在命令行下执行该命令,作用:graphviz将.dot文件解析为图片。
结果图如下:
只能看到继承关系(简单猜想:若想分析其他类关系,比如依赖、组合等,会极大增加复杂度。)Anyway,暂时满足简单需求了。以后想看其他关系,再去认真研究下。