pydot.InvocationException: GraphViz的可执行文件未找到。

22
我试图运行这个决策树学习的示例,但是出现了以下错误信息:

File "coco.py", line 18, in graph.write_pdf("iris.pdf") File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/pydot.py", line 1602, in lambda path, f=frmt, prog=self.prog : self.write(path, format=f, prog=prog)) File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/pydot.py", line 1696, in write dot_fd.write(self.create(prog, format)) File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/pydot.py", line 1727, in create 'GraphViz\'s executables not found' ) pydot.InvocationException: GraphViz's executables not found

我看到了这篇文章关于类似错误的解释,但是即使我按照他们的解决方法(先卸载graphviz和pydot,然后再相反的顺序重新安装),问题仍然存在... 我正在使用MacOS (Yosemite)。
有任何想法吗?感谢帮助。

1
请在您的问题中添加如何安装graphviz的信息(例如homebrew,macports等)。似乎您的PATH变量存在问题。 - cel
7
Graphviz 并不是一个 Python 工具。在pypi上的 Python 包为在 Python 代码中使用 Graphviz 提供了一种方便的方式。但你仍需要安装 Graphviz 可执行文件,这些文件并不是 Pythonic 的,因此不会与这些包一起发布。你可以使用通用的包管理程序(例如 homebrew)来安装它们。 - cel
@cel,你的评论很有价值,完全回答了问题。也许你应该把它们变成一个答案? - Akavall
@Akavall,我并不是很想在这里写一个答案。如果你认为回答这个问题是个好主意,可以把我的评论当作你的答案模板。 - cel
在 Mac OS X 上,我建议从源代码开始进行全新的 Macports 安装,然后安装 GraphViz,sudo port install graphviz。 - Claude COULOMBE
显示剩余3条评论
12个回答

32

cel在评论中回答:

Graphviz不是Python工具。在PyPI上提供的Python包为在Python代码中使用Graphviz提供了方便的方法。但是,您仍然需要安装Graphviz可执行文件,这些文件并非Pythonic,因此不随这些软件包一起提供。你可以通过通用的软件包管理器(例如homebrew)来安装那些文件。

就我个人而言,在Ubuntu 14.04上,我所做的只是:

sudo apt-get install graphviz

26
brew install graphviz
pip install -U pydotplus

...在我的MacOSX上运行良好。


1
这个解决方案在我的MacOS Mojave 10.14.5版本上有效。 - Papa Delta
这对我有用,Mac Monterey 12.2.1,在多次conda和pip安装迭代之后。对我来说,诀窍是通过brew。 - Magnetar

9
在Windows 8上,这对我解决了同样的问题:
import os     
os.environ["PATH"] += os.pathsep + 'C:/Program Files (x86)/Graphviz2.38/bin/'

一个更加永久的解决方案是在适当的配置文件中设置环境的 PATH 变量(在 *nix 系统中通常是 ~/.bashrc)。 - 0 _

7
当我使用pip安装pydot和graphviz时,遇到了同样的问题,后来我在这里找到了答案。
具体来说,我首先卸载了我分别使用pip安装的pydot和graphviz(使用sudo pip uninstall pydot和相同的方式卸载graphviz)。然后,我运行了sudo apt-get install python-pydot,这解决了问题。

6
conda install -c anaconda graphviz        
conda install -c anaconda pydot

这在iOS上对我非常有效。谢谢,@scarain - Pramit
注意Mac用户,这是你的答案-谢谢,Scarain! - Mr. Vanderstelt
不要这样做,Mac用户,你必须重新安装所有其他模块。 - Lakshay

4

对于Windows用户:
1.安装Graphviz
2.将Graphviz路径添加到PATH变量中
3.重新启动PyCharm或其他编译器。

自版本2.31起,Visual Studio软件包不再更改PATH变量或访问注册表。如果您希望使用命令行界面访问Graphviz,或者正在使用调用Graphviz程序的其他程序,您需要自己设置PATH变量。


4

这对我在Ubuntu 18.04上同样有效:

$ sudo apt-get install graphviz  

2
如果你使用的是Mac操作系统,可能会遇到这个问题。我曾经尝试通过pip安装graphviz,但是没有成功。所以我又用brew重新安装了一次,这样就可以了。
请使用以下命令:
``` brew install graphviz ```

或者 arch -arm64 brew install graphviz - 谢谢 - rodmclaughlin

1
我遇到了类似的问题,解决方法是更改路径。
这是我所做的:
将电脑上的“graphiz”路径复制粘贴到控制面板中的环境变量>路径中。
例如: Graphiz路径:C:\Apps\Program Files\Continuum\Anaconda2\Library\bin\graphviz)
(我已经将其安装在Apps文件夹中。对于您来说,可能位于不同的路径中)
在环境变量中设置路径:
转到控制面板>控制面板>系统和安全>系统。单击高级设置,然后单击高级。您会在右下角找到环境变量。单击路径以编辑并保存它。关闭IDE并重新打开它。
对我有效。

1
我遇到了同样的问题,我的问题通过以下方式得以解决:
  1. 运行命令 sudo port install graphviz
  2. 如果端口出现错误,则根据您使用的版本首先从下面的链接中安装端口https://guide.macports.org/chunked/installing.macports.html
  3. 安装端口后运行命令 sudo port install graphviz

如果您正在使用iPython,请重新启动Python内核并再次运行。


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