为什么在Windows 8中pydot无法找到GraphViz可执行文件?

75
我已经在Windows 8上安装了GraphViz 2.32,并将C:\Program Files (x86)\Graphviz2.32\bin添加到系统PATH变量中。但是,Pydot仍然找不到其可执行文件。
Traceback (most recent call last):
  File "<pyshell#26>", line 1, in <module>
    graph.write_png('example1_graph.png')
  File "build\bdist.win32\egg\pydot.py", line 1809, in <lambda>
    lambda path, f=frmt, prog=self.prog : self.write(path, format=f, prog=prog))
  File "build\bdist.win32\egg\pydot.py", line 1911, in write
    dot_fd.write(self.create(prog, format))
  File "build\bdist.win32\egg\pydot.py", line 1953, in create
    'GraphViz\'s executables not found' )
InvocationException: GraphViz's executables not found

我发现了这个链接,但是无法解决问题。


现在,您可以使用“sklearn.tree.plot_tree”可视化树形结构,而无需安装dot。 - Andreas Mueller
28个回答

77

问题在于pydot模块无法找到GraphViz的路径,如下所示:

'GraphViz的可执行文件未找到'

我在Windows 7上解决了这个问题,方法是将GraphViz二进制目录添加到计算机的PATH中。然后重新启动我的Python IDE以使用更新后的路径。

  1. 如果您尚未安装GraphViz,请安装它(我使用了MSI下载)
  2. 获取gvedit.exe的路径(对我来说是“C:\ Program Files (x86)\ Graphviz2.34 \ bin \”)
  3. 将此路径添加到计算机的PATH中
  4. 打开环境变量设置,可以通过单击以下每个按钮/菜单选项来完成:开始->计算机->系统属性->高级系统设置->环境变量
  5. 单击编辑用户路径
  6. 将此字符串添加到您的变量值列表末尾(包括分号):;C:\Program Files (x86)\Graphviz2.34\bin
  7. 单击确定
  8. 重新启动您的Python IDE

2
在我的Windows 8系统中,我一直遇到错误,直到我意识到在Windows 8中不应该在路径周围使用引号(")。删除它们后,一切都很好。 - srodriguex
这解决了我的Anaconda安装问题;尝试安装并将“Graphviz”添加为路径变量时遇到了很多问题。 “msi”路线可行,但“pip”和“conda”安装路线均失败。 - Sumax

69
在Mac上,brew install graphviz解决了我的问题。

对我有用!谢谢! - Mikebarson
sudo aptitude install graphviz 可以在 Ubuntu(18)上正常工作。 - Simeon

32

这是因为我在安装 pydot 之后才安装了 graphviz,所以 pydot 找不到它。按照正确顺序重新安装解决了问题。


4
安装pydot和GraphViz的顺序对于pydot能否找到GraphViz没有影响。为了让pydot能够检测到GraphViz,GraphViz可执行文件应该在当前路径中。请注意,这里不需要进行额外的解释或返回任何翻译之外的内容。 - 0 _
订单不重要 :) - Akash Kandpal
顺序不重要 - Vinay billa

25

我尝试通过控制面板添加路径,但也需要重新启动命令提示符。以下方式也适用于在Notebook会话中更新路径而无需退出:

import os     

os.environ["PATH"] += os.pathsep + 'C:/Program Files (x86)/Graphviz2.38/bin/'

1
你不需要重新启动整个计算机,只需重启你想要使用的程序。这可能是你正在运行笔记本服务器的命令提示符。 - danio
它在Windows 10机器上运行良好。感谢分享这段代码。 - Student of the Digital World
太棒了!它帮了我大忙!我尝试了所有的方法,但这个解决了问题!谢谢你! - Luba Weissmann

20

1
最好使用 virtualenv - boldnik

9
对于Windows 8.1和Python 2.7的用户,您可以按照以下步骤解决问题:
1.下载并安装graphviz-2.38.msi:https://graphviz.gitlab.io/_pages/Download/Download_windows.html
2.设置路径变量:
控制面板 > 系统和安全 > 系统 > 高级系统设置 > 环境变量 > Path > 编辑
添加'C:\Program Files (x86)\Graphviz2.38\bin'。
3.重新启动需要该路径的应用程序即可。

2
这对我解决了问题。注意:由于已经运行的应用程序可能不会自动适应更新后的环境,您应该重新启动需要新路径的任何应用程序(请参见如何在不重启计算机的情况下添加Windows环境变量)。 - SND

9

您需要从Graphviz安装,然后将安装Graphviz的文件夹路径和其bin目录路径添加到系统环境变量中即可。


6
我正在使用Anaconda 3.6.5在Windows 10上工作。由于我没有管理员权限,所以如果有人和我一样处于这种情况下,这个解决方案非常完美。
我的graphviz路径如下: C:\Users\User_Name\AppData\Local\Continuum\anaconda3\Library\bin\graphviz
在Spyder或Jupyter中输入以下内容:
import os os.environ['PATH'].split(os.pathsep)
这将列出您环境中的所有路径。查看它们,如果您的graphviz路径不在这里,请找到它并复制路径,就像我上面的例子一样。 然后输入以下内容:
os.environ['PATH'] += os.pathsep + 'C:\\Users\\User_Name\\AppData\\Local\\Continuum\\anaconda3\\Library\\bin\\graphviz'
就这样,但请注意,每次重新启动内核时,您都必须运行这些命令。

4
对于我而言:(Win10,Anaconda3) 请确保您已经执行了“conda install graphviz”命令。
我需要将以下路径添加到PATH环境变量中:C:\Users\username\Anaconda3\Library\bin\graphviz。
要修改PATH环境变量,请前往“控制面板” >“系统和安全” >“系统” >“高级系统设置” >“环境变量” >“Path” >“编辑” >“新建”。
一定要在更改之后重新启动您的IDE。 这样做应该可以解决问题。

4
将dot.exe添加到您的路径中。 右键单击我的计算机>高级系统设置>环境变量>突出显示“路径”>编辑, 然后将引号中的所有内容附加到路径中";C:\Program Files (x86)\Graphviz2.34\bin\",具体取决于您安装Graphviz的位置。然后重新启动python shell并键入。

import pydot pydot.find_graphviz() 请确保在'bin'后面有一个斜杠,这样它就可以获取文件夹内的所有内容。我尝试了没有斜杠的情况,但上面的代码没有返回任何内容,然而添加斜杠后,它返回了它所需的graphviz可执行文件及其路径。


我按照您在Windows 10中的指示操作,但是Windows没有将我的模块路径(位于Google Drive中)添加到路径列表中,尽管它在窗口中显示。检查路径是否实际添加到路径列表的一种方法是打开新终端并运行“path”。 - Dr.PP

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接