用 Python 画流程图,常见有这几种路线,按专业度 / 上手难度从低到高列出 | | |
|---|
| 专业、语义清晰、最像“真正的流程图” | |
| | |
| 写代码即流程图,适合Markdown、文档系统、MCP/LLM 项目 | |
| | |
但是,虽然可以安装成功,但在运行 Graphviz 示例后,控制台直接报错,内容如下:graphviz.backend.execute.CalledProcessError: Command '[WindowsPath('dot'), '-Kdot', '-Tpng', '-O', 'flowchart']' returned non-zero exit status 3221225477. [stderr: b'Warning: Could not load "C:\\ProgramData\\anaconda3\\envs\\py310\\Library\\bin\\gvplugin_pango.dll" - It was found, so perhaps one of its dependents was not. Try ldd.\r\nWarning: Could not load "C:\\ProgramData\\anaconda3\\envs\\py310\\Library\\bin\\gvplugin_pango.dll" - It was found, so perhaps one of its dependents was not. Try ldd.\r\nWarning: Could not load "C:\\ProgramData\\anaconda3\\envs\\py310\\Library\\bin\\gvplugin_pango.dll" - It was found, so perhaps one of its dependents was not. Try ldd.\r\nWarning: Warning: no value for width of non-ASCII character 229. Falling back to width of space character\r\n']
这是 Windows + Anaconda + Graphviz 的经典坑pip uninstall graphviz -yconda remove graphviz -y
conda install -c conda-forge graphviz python-graphviz -y
conda-forge 会把pango / cairo / freetype / fontconfig 一整套依赖装全dot - graphviz version 9.x.x
import os# 一定要在 import graphviz 之前os.environ['GDFONTPATH'] = r'C:\Windows\Fonts'os.environ['GV_PLUGIN_PATH'] = '' # 禁用 pango(关键)from graphviz import Digraph# 这一行是“生死线”,不设置编码方式看到的是一堆 5F 59 00 CB 中文乱码dot = Digraph( format='png', encoding='utf-8' )dot.graph_attr.update( charset='UTF-8', fontname='SimHei')dot.node_attr.update( fontname='SimHei')dot.edge_attr.update( fontname='SimHei')# 添加节点dot.node('A', '开始')dot.node('B', '读取数据')dot.node('C', '是否有效?')dot.node('D', '处理数据')dot.node('E', '结束')# 添加边dot.edge('A', 'B')dot.edge('B', 'C')dot.edge('C', 'D', label='是')dot.edge('C', 'E', label='否')dot.edge('D', 'E')# 流程图渲染 dot.render('flowchart_cn')