文章目录
-
- [1 功能特性](#1 功能特性)
- [2 系统要求](#2 系统要求)
- [3 安装指南](#3 安装指南)
- [4 使用方法](#4 使用方法)
平时做 Python 项目开发、代码梳理与架构复盘时,我们经常会遇到一个很头疼的问题:想快速看清项目里函数之间的调用关系 、理清整体代码结构,却没有顺手又直观的工具。手动梳理不仅耗时费力,用命令行生成调用图又需要反复敲指令、记参数,对不熟悉 Graphviz 和 draw.io 转换流程的开发者很不友好;批量处理多个项目文件夹时,界面容易卡死、日志看不到、出错也不知道问题出在哪;生成的.dot 文件还得手动转成 draw.io 格式,才能在可视化工具里自由编辑、导出分享,整个流程繁琐又碎片化,严重影响代码分析与文档沉淀效率。
为此,编写了一个基于 PySide6 的桌面应用程序,用于从 Python 代码生成函数调用图,并将其转换为 drawio 格式,便于编辑调用函数之间联系并添加注释。

1 功能特性
- 文件夹管理:通过文件对话框或拖放添加多个 Python 项目文件夹
- 路径验证:自动检查路径是否存在以及是否包含 Python 文件
- 多线程处理:使用后台线程避免 UI 冻结
- 进度跟踪:实时进度条和详细的日志输出
- 错误处理:针对缺失依赖项或处理失败的全面错误消息
- 输出自定义:选择生成文件的输出目录
- 拖放支持:只需将文件夹拖放到应用程序窗口
2 系统要求
- Ubuntu: 24.04 LTS
- Python 3.8 或更高版本
3 安装指南
-
克隆或下载此仓库
bashgit clone https://github.com/laoxue888/pycallgraph2drawio.git -
安装 Anaconda
shell# Select 5 to change the system repository. # 选择 5 以更改系统仓库。 wget http://fishros.com/install -O fishros && . fishros # 取消代理(Failed to connect to 127.0.0.1 port 1008) # Cancel proxy (Failed to connect to 127.0.0.1 port 1008) git config --global --unset http.proxy git config --global --unset https.proxy # Use a proxy # 使用代理 #git config --global http.proxy "http://127.0.0.1:7890" #git config --global https.proxy "http://127.0.0.1:7890" # Install Anaconda # 安装 Anaconda cd downloads wget https://repo.anaconda.com/archive/Anaconda3-2025.06-0-Linux-x86_64.sh chmod +x Anaconda3-2025.06-0-Linux-x86_64.sh && bash Anaconda3-2025.06-0-Linux-x86_64.sh # Create a virtual environment # 创建虚拟环境 conda create -n callgraph2drawio python=3.12 -y # Switch to the newly created virtual environment # 切换到新创建的虚拟环境 conda activate callgraph2drawio -
安装依赖项:
bashapt update && apt install -y \ libegl1 \ libxkbcommon0 \ libglib2.0-0 \ graphviz \ graphviz-dev \ x11-xserver-utils \ libxcb* \ libxcb-cursor0 \ libxcb-xinerama0 \ libxkbcommon-x11-0 \ libxcb-render0 \ libxcb-shape0 \ libxcb-xfixes0 \ libxcb-randr0 \ libxcb-glx0 \ libxcb-keysyms1 \ libxcb-image0 \ libxcb-icccm4 \ libxcb-sync1 \ libxcb-xkb1 \ libx11-xcb1 \ libgl1 pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple -
运行应用程序:
bashpython callgraph_gui.py
4 使用方法
-
启动应用程序:
bashconda activate callgraph2drawio python callgraph_gui.py -
添加 Python 项目文件夹:
- 点击"添加文件夹"按钮浏览文件夹
- 或者直接将文件夹拖放到窗口
- 文件夹将列在"文件夹管理"部分

-
配置输出(可选):
- 点击"更改输出目录"选择生成文件的保存位置
- 默认为当前工作目录

-
生成调用图:
- 点击"生成调用图"按钮
- 进度将在进度条中显示
- 详细日志将出现在"日志输出"区域

-
查看结果:
-
生成的文件将保存在输出目录中:
.dot文件:Graphviz 格式(可使用 Graphviz 工具查看).drawio文件:Draw.io 格式(可在 draw.io 或 diagrams.net 中打开)
-
在 VSCode 中查看 drawio 文件:首先安装
Draw.io Integration扩展,然后点击 drawio 文件查看。
-
