You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

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

火山引擎 最新活动