安装Graphviz 2.38后出现“RuntimeError:请确保Graphviz可执行文件在您的系统路径上”的错误提示。

280

我下载了 Graphviz 2.38 MSI 版本并安装在文件夹 C:\Python34 下,然后运行了 pip install Graphviz,一切顺利。在系统路径中我添加了 C:\Python34\bin。当我尝试运行一个测试脚本时,在代码行 filename=dot.render(filename='test'),我收到了一条消息。

 RuntimeError: failed to execute ['dot', '-Tpdf', '-O', 'test'], make sure the Graphviz executables are on your systems' path

我试图将"C:\Python34\bin\dot.exe"添加到系统路径中,但没有成功,我甚至创建了一个名为"GRAPHVIZ_DOT"的新环境变量,并将其值设置为"C:\Python34\bin\dot.exe",但仍然无法正常工作。我尝试卸载Graphviz和pip uninstall graphviz,然后重新安装并再次使用pip安装,但仍然无效。

完整的回溯消息如下:

Traceback (most recent call last):
  File "C:\Python34\lib\site-packages\graphviz\files.py", line 220, in render
    proc = subprocess.Popen(cmd, startupinfo=STARTUPINFO)
  File "C:\Python34\lib\subprocess.py", line 859, in __init__
    restore_signals, start_new_session)
  File "C:\Python34\lib\subprocess.py", line 1112, in _execute_child
    startupinfo)
FileNotFoundError: [WinError 2] The system cannot find the file specified

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "C:\Users\Documents\Kissmetrics\curves and lines\eventNodes.py", line 56, in <module>
    filename=dot.render(filename='test')
  File "C:\Python34\lib\site-packages\graphviz\files.py", line 225, in render
    'are on your systems\' path' % cmd)
RuntimeError: failed to execute ['dot', '-Tpdf', '-O', 'test'], make sure the Graphviz executables are on your systems' path

有人对此有经验吗?

38个回答

217

你应该在系统中安装graphviz软件包(不仅是Python软件包)。在Ubuntu上,你应该尝试:

sudo apt-get install graphviz

如果这不起作用(它会说包已被引用但不存在之类的),请运行 sudo apt-get update 以更新 apt-get 并告诉它哪些包可用。 - Pro Q
如果你在 Docker 容器中(就像我一样),我已经在 root 下,只需要运行 apt-get install graphviz 即可。 - kevin_theinfinityfund
希望我能帮助到某个人。这对我来说第一次没有起作用,所以我运行了 sudo apt-get update && sudo apt-get upgrade,之后它就可以工作了。 - dylanvanw
如果我只想在虚拟环境中安装graphviz怎么办? - Vadim

193
这个应该解决MacOS上的问题。
brew install graphviz

为了解释给新手使用Conda的误解。当我们运行conda install graphviz时,它会安装Graphviz的二进制文件(目前还不能在Python中执行)。
然后,我们通常还会安装conda install python-graphviz,这将安装用于在Python中运行Graphviz二进制文件的包装器,问题是我们可能会收到"graphviz"不可执行的错误消息。
因此,最好使用Homebrew来安装Graphviz二进制文件,然后再安装python-graphviz。Homebrew将确保二进制文件可执行。

2
对于 Mac,这似乎是最佳选择。除非您想使用 MacPorts 并从此处安装 graphviz:http://www.graphviz.org/Download_macos.php。 - Alex
2
谢谢,它在我的MAC上运行了。我尝试过使用pip和conda安装,但都没有成功。 - Chau Pham
我该如何找到我的bin文件夹,其中我有graphviz。我遇到了这个问题,现在真的很烦恼。刚刚检查了一下,我有graphviz 2.38。 - Herc01
在安装Graphviz之前,我必须运行:xcode-select --install - Va5ili5
1
它在 Monterey 12.3 上对我有效。 - Guillaume-ds
显示剩余3条评论

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

在Windows中,只需在开头添加以下2行代码,其中'D:/Program Files (x86)/Graphviz2.38/bin/'需替换为您的bin文件所在地址。

这样就解决了问题。


23
在Windows系统中工作时,我从这里https://graphviz.gitlab.io/_pages/Download/Download_windows.html下载了graphviz-2.38.zip。解压缩并将其放置在提到的文件夹中。 - user3046442
这对我很有效。我尝试将其添加到用户和系统环境变量中,但那并不起作用,只有你的解决方案对我有效。 - Tom
这对我也起作用了,但在运行之前它抛出了另一个错误。由于某种原因,它给了我一个并排配置....-错误。我还不得不重新安装Microsoft Visual C++ 2008可再发行软件包(x86)。如果有人遇到同样的问题,这是链接:[https://www.microsoft.com/de-DE/download/details.aspx?id=29] - Marco
我使用了Chocolatey来安装Graphviz choco install -y graphviz - reddi.eth
没错,这个可行。确保下载正确的Graphviz。我还将Graphviz二进制文件放在了用户和系统路径上。 - max

97

对于Windows:

  1. https://graphviz.gitlab.io/_pages/Download/Download_windows.html下载Graphviz软件包并安装。
  2. 安装Python的graphviz软件包。
  3. C:\Program Files (x86)\Graphviz2.38\bin添加到用户路径中。
  4. C:\Program Files (x86)\Graphviz2.38\bin\dot.exe添加到系统路径中。

这对我有用!


23
请关闭正在运行Jupyter Notebook的“cmd”窗口。因为已经打开的“cmd”无法获取新的环境变量更改。 - Rohit Nandi
6
直到我重新启动系统之后,它才起作用。 - Mohammad Nazari
这个完美地解决了问题。只需要重新启动笔记本电脑即可。谢谢。 - Amresh Giri
你不需要重新启动整个系统,而只需重新启动Python内核即可。 - SujaiSparks
@SujaiSparks - 没有起作用 - 我不得不重新启动整个系统。 - Alaa M.

66

尝试使用:

conda install python-graphviz

如果您使用pip install graphviz,则graphviz可执行文件位于与conda目录不同的路径上。


4
Conda install graphviz 可以在 Windows 上正常工作!似乎没有其他方法可行 :\ - Joel Carneiro
1
pygraphviz在使用conda时有一个很大的警告,但不清楚为什么。 - Adam Burke
1
我在Anaconda提示符中运行了“conda install python-graphviz”,一旦执行完成,只需重新启动Jupyter笔记本内核即可。这对我有用。 - mpriya
我在Anaconda提示符中运行了"conda install python-graphviz"命令,执行完成后,只需重新启动Jupyter笔记本内核即可。这对我起作用了。同样在Windows上也可以运行。 - Mata

26

步骤1: 安装Graphviz二进制文件

Windows:

  1. http://www.graphviz.org/download/下载Graphviz
  2. 将以下内容添加到PATH环境变量中(请提及安装的Graphviz版本):
    • C:\Program Files (x86)\Graphviz2.38\bin
    • C:\Program Files (x86)\Graphviz2.38\bin\dot.exe
  3. 关闭任何打开的Juypter笔记本和命令提示符窗口
  4. 重新启动Jupyter/cmd提示符并进行测试

Linux:

  1. sudo apt-get update
  2. sudo apt-get install graphviz
  3. 或者从http://www.graphviz.org/download/手动构建

步骤2: 安装python的graphviz模块

pip:

  • pip install graphviz

conda:

  • conda install graphviz

1
在Winzoz上已经为我解决了。 - rakwaht
1
非常好的解释!谢谢~ - Bright Chang

18

这显示了一些路径问题:

pip install graphviz

所以这对我有用:

sudo apt-get install graphviz

sudo apt-get install graphviz 不是 pip install 的替代方案。 - sajid

16

操作系统为OSX Sierra, Python版本为2.7,Graphviz版本为2.38。

使用pip install graphvizconda install graphviz都可以解决问题。

pip仅会遇到与您相同的路径问题,conda则只会遇到导入错误。


只有这个对我起作用了,在尝试了所有方法之后。谢谢。 - Meghna Natraj
Conda install graphviz 在 Windows 上运行了!其他的方法好像都不起作用 :\ - Joel Carneiro

16

使用conda install graphvizconda install python-graphviz在Windows10上安装GraphViz时,我需要的路径是C:/ProgramData/Anaconda3/Library/bin/graphviz/。即将此路径添加到系统环境变量中。

import os
os.environ["PATH"] += os.pathsep + 'C:/ProgramData/Anaconda3/Library/bin/graphviz/'

解决了我的问题。


这个 def 解决了问题... 谢谢 - Zombraz

14

只需将以下内容添加到您的系统环境变量PATH中,适用于Windows操作系统:

C:\Program Files (x86)\Graphviz2.38\bin

在这里,您可以找到.exe文件

如果不起作用

在您的Program Files而不是python lib中查找Graphviz2.38/bin文件夹

然后,将其添加到您的PATH

重要的是要找到一个包含.exe文件的文件夹


似乎只有您的帖子可以解决我的问题...Win10企业版,Jupyter笔记本,Py 3.6。 - Travis
您需要重新启动Jupyter Notebook/Anaconda,以便重新缓存环境变量(PATH)。 - SujaiSparks

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