Pydot报'dot not found in path'异常求助(Anaconda/Spyder环境)
解决pydot导出PNG时'dot not found in path'的问题
我之前也碰到过完全一样的情况!明明系统PATH已经加了Graphviz的dot.exe路径,CMD里能正常运行dot,但在Anaconda/Spyder里就是报错。这大概率是因为Anaconda环境的变量缓存或者优先级问题,给你几个亲测有效的解决方案:
1. 重启Spyder/Anaconda
环境变量的修改需要重启应用才能生效。如果你是在修改PATH之后没重启过Spyder,那它还是在用旧的PATH配置,自然找不到dot.exe。关闭所有Anaconda相关的窗口,重新打开Spyder再试试,这是最常见的解决方法。
2. 在代码中手动指定dot的路径
如果重启没用,可以直接在代码里告诉pydot去哪里找dot.exe,跳过环境变量的问题:
import pydot # 手动设置dot的路径 pydot.set_graphviz_executables({'dot': r'C:\ProgramData\Graphviz\release\bin\dot.exe'}) # 你的原有代码 (graph, ) = pydot.graph_from_dot_file('dot_files/rf_WB.dot') graph.write_png('rf_WB.png')
3. 验证Spyder的PATH并手动加载
有时候Anaconda的环境会隔离系统PATH,你可以先在Spyder的IPython控制台里运行下面的代码,看看当前环境的PATH里有没有Graphviz的bin目录:
import os print(os.environ['PATH'])
如果输出里没有C:\ProgramData\Graphviz\release\bin,那可以试试:
- 打开Anaconda Prompt
- 输入命令:
set PATH=C:\ProgramData\Graphviz\release\bin;%PATH% - 从这个Prompt里启动Spyder(输入
spyder回车)
这样启动的Spyder就会加载更新后的PATH了。
4. 用conda直接安装Graphviz
如果上面的方法都不太行,干脆让Anaconda环境自己带Graphviz工具,避免系统路径的问题。打开Anaconda Prompt,运行:
conda install -c conda-forge graphviz
安装完成后重启Spyder,再运行你的代码,应该就能正常导出PNG了。
内容的提问来源于stack exchange,提问作者NotAName




