PyDotPlus导出决策树PNG时报GraphViz可执行文件找不到的解决方法
报错原因
pydotplus 是GraphViz绘图工具的Python绑定封装,本身不包含GraphViz的核心可执行程序。pip仅能安装Python侧的依赖包,不会自动部署系统级的GraphViz组件,因此调用graph.write_png()时会因为找不到底层绘图引擎抛出GraphViz's executables not found错误。
解决步骤
- 安装系统级GraphViz程序
安装对应操作系统的GraphViz正式发行包,安装完成后确认程序目录下存在dot.exe可执行文件。 - 配置环境变量
将GraphViz安装路径下的bin子目录(即存放dot.exe的文件夹)添加到系统Path环境变量中。 - 重启PyCharm
已运行的PyCharm进程不会自动加载更新后的系统环境变量,必须完全关闭重启PyCharm后,环境配置才会在IDE内生效。 - (可选)代码层路径适配
部分场景下系统环境变量无法被pydotplus正常识别,可在导入pydotplus前通过代码显式指定GraphViz的bin目录路径:import os # 替换为本地dot.exe所在bin目录的实际绝对路径 os.environ["PATH"] += os.pathsep + "C:/Program Files/GraphViz/bin"
常见踩坑提示
- 仅通过pip安装
graphvizPython包无法解决问题,该包与pydotplus功能类似,同样依赖系统级的GraphViz核心程序。 - 虚拟环境(venv)不会隔离系统级安装的GraphViz程序,不需要在venv内单独执行GraphViz的安装命令,只要系统层面安装配置完成,Python代码即可正常调用。
- 不要将GraphViz安装在路径包含中文、特殊字符的目录下,避免程序解析路径失败。
- 验证配置是否生效时,需要打开全新的命令行窗口执行
dot -v,如果能正常输出版本信息,说明配置没有问题。
内容的提问来源于stack exchange,提问作者Mehrizi98
相关产品推荐
相关产品推荐

