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

Posted

技术标签:

【中文标题】pydot.InvocationException:未找到 GraphViz 的可执行文件【英文标题】:pydot.InvocationException: GraphViz's executables not found 【发布时间】:2015-02-24 08:08:42 【问题描述】:

我尝试运行this example 进行决策树学习,但收到以下错误消息:

文件“coco.py”,第 18 行,在 graph.write_pdf("iris.pdf") 文件 "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/pydot.py", 第 1602 行,在 lambda 路径, f=frmt, prog=self.prog : self.write(path, format=f, prog=prog)) 文件 "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/pydot.py", 第 1696 行,写入 dot_fd.write(self.create(prog, format)) 文件“/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/pydot.py”, 第 1727 行,在创建中 'GraphViz\'s executables not found' ) pydot.InvocationException: GraphViz's executables not found

我看到this post 有类似的错误,但即使我遵循他们的解决方案(卸载然后以相反的顺序重新安装 graphviz 和 pydot),问题仍然存在......我使用的是 MacOS(优胜美地)。

有什么想法吗?非常感谢您的帮助。

【问题讨论】:

请在您的问题中添加您如何安装 graphviz(例如 homebrew、macports 等)。您的 PATH 变量似乎存在问题。 我用过 pip,所以没什么特别的...(sudo pip install graphviz)。 我可以通过手动更改路径变量来修复它吗?如果可以,怎么做? Graphviz 不是 python 工具。 pypi 的 python 包提供了一种在 python 代码中使用 Graphviz 的便捷方式。您仍然需要安装Graphviz 可执行文件,它们不是pythonic,因此这些软件包不附带。您可以安装这些,例如使用通用包管理器,例如 homebrew 太棒了!我永远的感激之情-谢谢! 【参考方案1】:

cel,在评论中回答了这个问题:

Graphviz 不是 Python 工具。 pypi 的 python 包提供了一个 在 python 代码中使用 Graphviz 的便捷方式。你还是要 安装 Graphviz 可执行文件,它们不是 pythonic,因此不是 随这些包裹一起提供。您可以安装这些,例如有一个 通用包管理器,例如自制软件

就我个人而言,在 ubuntu 14.04 上,我所要做的就是:

sudo apt-get install graphviz

【讨论】:

【参考方案2】:
brew install graphviz
pip install -U pydotplus

...在 MacOSX 上为我工作

【讨论】:

此解决方案适用于 MacOS Mojave 版本 10.14.5【参考方案3】:

在 Windows 8 上,这为我解决了同样的问题:

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

【讨论】:

一个更持久的解决方案是在适当的配置文件中设置环境的PATH变量(在*nix系统上这通常是~/.bashrc)。【参考方案4】:

我在用pip安装pydot和graphviz时遇到了同样的问题,然后我找到了答案here。

特别是,我首先卸载了我使用 pip 单独安装的 pydot 和 graphviz(使用 sudo pip uninstall pydotgraphviz 相同)。然后,我运行 sudo apt-get install python-pydot 解决了这个问题。

【讨论】:

【参考方案5】:
conda install -c anaconda graphviz        
conda install -c anaconda pydot

【讨论】:

这对我来说就像在 ios 上的魅力一样。谢谢,@scarin 注意 mac 用户,这是你的答案 - 谢谢,吓人!! Mac 用户不要这样做,你已经重新安装了所有其他模块。【参考方案6】:

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

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

【讨论】:

【参考方案7】:

在 Ubuntu 18.04 上也为我工作:

$ sudo apt-get install graphviz  

【讨论】:

【参考方案8】:

如果您使用的是 mac 操作系统,那么您可能会遇到这个问题。我已经用 pip 安装了 graphviz ,但是可以正常工作。所以我不得不再次用 brew 安装它并为我工作。

使用以下命令

brew install graphviz

【讨论】:

arch -arm64 brew install graphviz - 谢谢【参考方案9】:

我遇到了同样的问题,我的问题得到了解决:

    运行命令sudo port install graphviz 如果端口出现错误,则首先根据您使用的版本从下面安装端口 https://guide.macports.org/chunked/installing.macports.html 安装后端口运行命令sudo port install graphviz

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

【讨论】:

【参考方案10】:

在 mac 上,使用 Brew 安装 graphviz 而不是 pip,请参见链接:

graphviz 信息:http://www.graphviz.org/download/

brew 安装:https://brew.sh/

所以安装 brew 后在终端中输入以下内容应该可以工作:

brew install graphviz

【讨论】:

【参考方案11】:

我确实遇到了类似的问题,纠正的方法是改变路径。

这就是我所做的:

将“graphiz”路径从您的计算机复制到环境变量>控制面板中的路径

示例: Graphiz 路径:C:\Apps\Program Files\Continuum\Anaconda2\Library\bin\graphviz)

(我已经将它安装在 Apps 文件夹中。它可能在你的不同路径中)

在环境变量中设置路径:

转到控制面板>控制面板\系统和安全\系统。单击高级设置,然后单击高级。您将在右下角找到环境变量。单击路径进行编辑并保存。关闭您的 IDE 并重新打开它。

它对我有用。

【讨论】:

【参考方案12】:

我建议避免使用graphviz。 使用以下替代方法

from sklearn.tree import plot_tree
plt.figure(figsize=(60,30))
plot_tree(dt, filled=True);

【讨论】:

以上是关于pydot.InvocationException:未找到 GraphViz 的可执行文件的主要内容,如果未能解决你的问题,请参考以下文章