48

我在 Windows 7 上运行 Python3.4。我正在尝试将 Python 接口用于 graphviz。这是我打算运行的脚本:

from graphviz import Digraph
import pydotplus

dot = Digraph(comment='The Round Table')

dot.node('A', 'King Arthur')
dot.node('B', 'Sir Bedevere the Wise')
dot.node('L', 'Sir Lancelot the Brave')
dot.edges(['AB', 'AL'])
dot.edge('B', 'L', constraint='false')

print(dot.source)
dot.render('test-output/round-table.gv', view=True)

我在运行时收到以下错误:

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

现在我确定我已经正确安装了正确的依赖项。我首先尝试设置正确的环境变量。graphviz 可执行文件位于C:\Program Files (x86)\Graphviz2.37\bin所以我去了环境变量部分。那里有两个部分:用户变量和系统变量。在系统变量下,我单击路径,然后单击Edit并将;C:\Program Files (x86)\Graphviz2.37\bin添加到字符串的末尾并保存。这并没有清除错误。

然后,按照这里给出的答案,我卸载了 pydot(实际上我在这里使用了 pydotplus)并再次重新安装,但仍然没有成功。

我已经尝试了几个小时来解决这个问题,整个 PATH 变量的事情只是令人困惑和沮丧。

4

31 回答 31

39

我在 Ubuntu 16.04 上也遇到了这个问题。

sudo apt-get install graphviz通过在我已经执行的 pip install 之外运行来修复。

于 2017-04-20T06:24:31.700 回答
32

在我"conda install graphviz"必须添加到 PATH 之后(Win10、Anaconda3、Jupyter notebook):C:\Users\username\Anaconda3\Library\bin\graphviz

修改 PATH 转到Control Panel > System and Security > System > Advanced System Settings > Environment Variables > Path > Edit > New

于 2016-08-18T05:46:19.343 回答
21

因为没有提到Mac OS,我会补充说我在OS X Yosemite上遇到了同样的问题,我找到的解决方案是brew install graphviz

这解决了问题,不确定我是否应该只编辑此列表中的其他答案之一,因为它们似乎都是相同的答案,除了 Python 库之外,只需安装一个官方包。

于 2017-05-26T17:35:10.030 回答
14

在win10中带有anaconda的jupyter(ipython)笔记本上,conda install graphviz我在安装graphviz之后解决了这个问题pip install graphviz

于 2016-04-06T02:35:49.020 回答
8

我解决了它直接从 Windows 路径安装https://graphviz.gitlab.io/_pages/Download/Download_windows.html并包括在 Windows 路径中:

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

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

在我重新启动 Windows 之后

于 2016-11-16T10:48:52.567 回答
7

如果您在 Win10 上,请安装 Graphviz ( link ),然后使用以下命令添加路径。

import os
os.environ["PATH"] += os.pathsep + 'C:\Program Files (x86)\Graphviz2.38/bin/'
于 2018-06-18T09:59:36.097 回答
6

当您将 C:\Program Files (x86)\Graphviz2.38\bin 添加到 PATH 时,您必须关闭 IDE 环境(例如 spyder)并重新启动,您将解决“RuntimeError:确保 Graphviz 可执行文件在您的系统上' 小路”

于 2017-03-25T15:26:05.200 回答
5

为了解决这个问题,当你成功安装graphviz2.38,然后将你的PATH变量添加到系统路径。在系统变量下你可以点击路径,然后点击编辑并添加;C:\Program Files (x86)\Graphviz2.38\ bin 到字符串的末尾并保存。之后,像 spyper 一样重新启动你的 pythonIDE,然后它就可以正常工作了。

不要忘记关闭 Spyder 然后重新启动。

于 2017-04-06T06:06:26.463 回答
5

我在 Jupyter Notebook 中遇到了同样的问题。添加这个,你就可以开始了。

import os

os.environ['PATH'] = os.environ['PATH']+';'+os.environ['CONDA_PREFIX']+r"\Library\bin\graphviz"
于 2020-06-22T19:41:35.817 回答
5

请注意,我使用的是 Windows 10。以下某些内容可能适用于其他版本的 Windows 或操作系统,也可能不适用:

**注 2:**
“您系统上的 Graphviz bin 文件地址”可以是C:\Program Files (x86)\Graphviz2.38\bin或您在那里安装 Graphviz 的任何其他路径。

我们不仅对 Graphviz 有问题,而且对我们想在 Jupyter 中使用的其他外部 EXE 文件也有问题。
原因是当 jupyter 想要导入一个包时,它会在工作目录中查找它,而当它找不到该包时,它会返回此类错误。
我们可以做的是解决这个问题,如下所示:
1)检查 Graphviz 是否安装在您的系统上,如果没有,您可以从以下位置下载并安装它:

https://graphviz.gitlab.io/_pages/Download/Download_windows.html
然后安装它。安装 Graphviz 时,请记住要安装它的位置(在哪个文件夹中)。如果你在使用的时候看到上面的错误

import graphviz

那么你有几个选择:

2)您可以通过调用ipynb中的.exe文件

import os
os.environ["PATH"] += os.pathsep + r'the Graphviz bin file address on your system'

根据我的经验,它只适用于我正在使用的同一个 ipynb,每次打开笔记本时,我都需要调用这行代码。

3)如果你想让Jupyter在哪里找到exe文件,你需要设置环境路径。
在 Windows 10 中,您可以执行以下操作:
控制面板 > 系统和安全 > 系统 > 高级系统设置 > 环境变量 > 路径 > 编辑 > 新建
,然后在 Windows 8 或更低版本中添加“系统上的 Graphviz bin 文件地址”转到:
控制面板>系统和安全>系统>高级系统设置>环境变量
,然后将;(分号)+“系统上的Graphviz bin文件地址”添加到路径字符串的末尾
注意:

4)即使这不起作用,定义一个变量去:
控制面板>系统和安全>系统>高级系统设置>环境变量,然后:

开始定义环境变量

然后定义一个变量如下: 请记住将变量命名为 Graphviz

请记住将变量命名为 Graphviz。最后重启你的电脑,希望它能正常工作。

于 2018-07-03T01:09:27.767 回答
5

只需安装

conda install graphviz

然后安装

conda install -c conda-forge pydotplus
于 2017-06-26T07:36:05.730 回答
3

看起来,Graphviz2.37 在 Windows 上的 PATH 变量存在问题。我卸载了它,删除了与之关联的环境变量,而是下载并安装了更新的 beta 版本 2.39,它现在就像一个魅力。

于 2015-02-04T03:01:31.530 回答
3

对于 windows 8.1 & python 2.7,我按照以下步骤解决了这个问题

1. 下载并安装 graphviz-2.38.msi http://www.graphviz.org/pub/graphviz/stable/windows/graphviz-2.38.msi

2. 设置路径变量

  • 控制面板 > 系统和安全 > 系统 > 高级系统设置 > 环境变量 > 路径 > 编辑
  • 添加 'C:\Program Files (x86)\Graphviz2.38\bin'
于 2017-07-29T19:04:49.520 回答
3

我尝试设置环境变量。没用。我在 Windows 环境中结合上述方法对我有用:

  1. 从https://graphviz.gitlab.io/_pages/Download/Download_windows.html下载 graphviz-2.38.zip

  2. 将提取的文件夹复制到 C:\Users\\AppData\Local\Continuum\anaconda3\pkgs\Graphviz2.38

  3. 我在代码中调用了 Graphviz 位置

    构建分类器

    import sklearn.datasets as datasets
    import pandas as pd
    from sklearn.tree import DecisionTreeClassifier
    iris=datasets.load_iris()
    df=pd.DataFrame(iris.data, columns=iris.feature_names)
    y=iris.target
    
    dtree=DecisionTreeClassifier()
    dtree.fit(df,y)
    

    构建树

    from sklearn.externals.six import StringIO  
    from IPython.display import Image  
    from sklearn.tree import export_graphviz
    import pydotplus
    import graphviz
    import os
    os.environ\["PATH"\] += os.pathsep + 'C:/Users/tstusr/AppData/Local/Continuum/anaconda3/pkgs/Graphviz2.38/bin'
    
    dot_data = StringIO()
    export_graphviz(dtree, out_file=dot_data,  
                    filled=True, rounded=True,
                    special_characters=True)
    graph = pydotplus.graph_from_dot_data(dot_data.getvalue())  
    Image(graph.create_png())
    

    这是树的外观:

在此处输入图像描述

于 2020-01-03T17:55:26.757 回答
2

我在 Anaconda 3 上使用 Windows 10、Python 3.6 并遇到了同样的问题。

我通过按顺序执行以下操作使其工作:

  1. 从 Anaconda 终端: pip install pydotplus
  2. 从 Anaconda 终端: conda install pydotplus
  3. 从 Anaconda 终端: pip install graphviz
  4. 从 Anaconda 终端: conda install graphviz
  5. 转到 Windows Environment Varialbes,PATH,并在 Anaconda 的 graphviz 目录下添加了我的 dot.exe 文件的位置。

在那之后工作得很好。

于 2018-02-15T08:22:14.817 回答
2

我在尝试通过 pydotplus 和 graphviz 创建决策树时遇到了同样的问题。并使用路径变量的方法解决了这个问题。

以下是我使用的确切步骤:

  1. 虽然我已经通过 conda install 命令获得了 graphviz,但我从下面的路径重新下载了最新的包。 https://graphviz.gitlab.io/_pages/Download/Download_windows.html 下载:graphviz-2.38.zip(稳定版)

  2. 将提取的文件夹复制到 C: Drive 上的以下路径下。C:\程序文件 (x86)\

  3. 修改系统路径变量并添加以下路径。路径变量:控制面板 > 系统和安全 > 系统 > 高级系统设置 > 环境变量 > 路径 C:\Program Files (x86)\graphviz-2.38\release\bin;

  4. 将上述路径添加到环境变量后,重新启动系统。

  5. 它工作正常,我能够将决策树创建为 png。

    在此处输入图像描述

于 2020-03-02T09:19:35.030 回答
1

我通过首先卸载所有已安装的 pydot、pydotplus 和 graphvis 版本解决了这个问题

pip uninstall pydot 
pip uninstall pydotplus
pip uninstall graphviz

然后我重新安装了它们:

conda install graphviz
conda install pydot
conda install pydotplus
于 2021-06-22T13:00:48.067 回答
1

尝试了很多方法,这才是真正解决问题的方法 - 它适用于 windows 8.1/10 和 python 3 。

1. 点安装graphviz

2. 所需的关键操作是通过以下步骤设置路径变量:

一个。控制面板 > 系统和安全 > 系统 > 高级系统设置 > 环境变量 > 路径 > 编辑 b. 添加 'C:\Program Files (x86)\Graphviz2.38\bin'

于 2019-11-08T04:03:52.363 回答
1

我在 Windows 10 上遇到了同样的问题。

首先,我graphviz-2.38.0使用以下命令安装没有任何问题...

install -c anaconda graphviz=2.38.0

其次,我pydotplus使用以下命令安装没有任何问题......

install -c conda-forge pydotplus

在那之后,当我开始可视化我的决策树时,遇到了以下问题{InvocationException: GraphViz's executables not found}......

C:\Users\admin\Anaconda3\lib\site-packages\pydotplus\graphviz.py in create(self, prog, format)
   1958             if self.progs is None:
   1959                 raise InvocationException(
-> 1960                     'GraphViz\'s executables not found')
   1961 
   1962         if prog not in self.progs:

InvocationException: GraphViz's executables not found

就我而言,修复它所需要做的就是将graphviz可执行文件的环境路径放在我的用户PATH环境变量中,这样就修复了它。只要确保它是YOUR.exe文件所在的路径:)

C:\Users\admin\Anaconda3\pkgs\graphviz-2.38.0-4\Library\bin\graphviz
于 2017-04-22T23:58:43.800 回答
1

尝试

import os

os.environ['PATH']=os.environ['PATH']+';'+os.environ['CONDA_PREFIX']+r"\Library\bin\graphviz"
于 2020-10-10T21:46:38.323 回答
0

在 Windows 上

首先,我们需要使用以下命令安装库pip

pip install graphviz

然后,我们可以尝试运行以下命令(如其他答案所建议):

conda install graphviz

然而,对我来说,这导致了 HTTP 错误 在此处输入图像描述

参考官方文档后,我最终选择了graphviz通过Chocolatey Package Manager安装的路径。

以管理员模式打开您的 shell,然后运行以下命令:

choco install graphviz -y

重启内核,问题就解决了。

于 2021-09-25T07:40:01.190 回答
0

对于所有在 Windows 10 中遇到此问题的人,即使在尝试了上述步骤后,这对我也有效 - 对于尝试调试此相同错误的 Windows 10 用户,请以管理员身份启动 CMD(重要!)并运行dot -c然后运行dot -v
此修复我的问题

于 2020-08-05T11:41:19.090 回答
0

这是我用过的新解决方案:)

我遇到了同样的问题,我正在使用 Anaconda 和 Jupyter Notebook。

我为解决这个问题所做的不是从互联网安装 Graphiz.zip!

我刚刚做了这些步骤:

  1. 使用 >> 创建一个新环境conda create -n [env_name]
  2. 在这个新环境中安装 graphviz lib:>>conda install graphviz
  3. 我在笔记本单元格中写了这些行并运行它import os os.environ['PATH'] = os.environ['PATH']+';'+os.environ['CONDA_PREFIX']+r"\Library\bin\graphviz"

最后,图像出现了,我为此做了一个小聚会,因为我花了 3 天时间 :(

于 2020-10-06T19:07:22.657 回答
0

为 Anaconda - Jupiternotebook 配置 Graphviz 的完整步骤:

从以下网址下载并安装“Windows 10 的 EXE 安装程序”:https ://graphviz.org/download/

环境变量:将 C:\Program Files\Graphviz 2.44.1\bin 添加到用户路径

环境变量:将 C:\Program Files\Graphviz 2.44.1\bin\dot.exe 添加到系统路径

安装 graphviz 后检查以下步骤:

  1. 点安装graphviz。
  2. 点安装 pydotplus
  3. 康达安装 pydotplus
  4. 添加环境变量的路径(C:\Users<username>\anaconda3\Library\bin\graphviz
  5. 重新启动 anaconda jupiter notebook 内核(如果已经运行)。
于 2021-06-22T05:05:45.307 回答
0

我不确定这是否是对这个问题的回答,但这似乎也是“我如何让 graphviz 在我的设置上运行?” 线。我也没有看到python-graphviz任何地方提到。

因此:Ubuntu 16.04,conda Python 3.7,使用 Jupyter 笔记本。

conda install -c anaconda graphviz
conda install -c conda-forge python-graphviz

仅尝试第一个命令后图像不会呈现;他们在运行第二个之后确实渲染了。

我也安装了pydot-plus,但没有看到行为、性能或图像分辨率有任何变化。

于 2019-11-08T18:05:08.073 回答
0

对我来说(Windows 10 + Pycharm2020)这行得通:

  • 添加C:\Program Files\Graphviz\bin到 PATH(Graphviz 二进制文件的路径)
  • 重启- 也许 PyCharm 重启就足够了
于 2021-03-01T11:29:09.640 回答
0

我刚刚遇到了同样的问题。这是我的解决方案。

1.)安装graphviz

确保您可以找到此文件夹 INSTALL_LOCATION\"Graphviz2.38\bin"

2.) 对于 Dot 对象,添加此代码

dot.set_graphviz_executables( {'dot': r'C:\Program Files\Graphviz\bin\dot.exe'})

在 graphviz.py 中,它确实提供了这个功能来手动设置执行文件的路径。然后,您应该能够运行代码。

仅供参考:这是来自 set_graphviz_executables 的描述

    This method allows to manually specify the location of the GraphViz
    executables.

    The argument to this method should be a dictionary where the keys are
    as follows:

        {'dot': '', 'twopi': '', 'neato': '', 'circo': '', 'fdp': ''}

    and the values are the paths to the corresponding executable,
    including the name of the executable itself.
于 2021-03-09T23:23:33.120 回答
0

我在使用 Jupyter 的 Ubuntu(14.04) 上遇到了同样的问题。

为了解决它,我将点库添加到 python sys.path

首先:检查是否安装了dot,

然后:找到他的路径whereis dot-> /local/notebook/miniconda2/envs/ik2/bin/dot

最后在 python 脚本中: sys.path.append("/local/notebook/miniconda2/envs/ik2/bin/dot")

于 2016-06-07T18:19:20.540 回答
0

我在这个问题上被困了很长时间,但过了一段时间我找到了解决方案:

于 2020-07-06T15:40:26.613 回答
0

对我有用的最简单的解决方案(Windows 10,Jupyter Notebook)是执行以下操作:

  1. 点安装graphviz
  2. 重启 jupyter
  3. 将以下代码放入笔记本并执行:
import sys

sys.path.append('C:/Users/usrname/AppData/Local/Continuum/anaconda3/Library/bin/graphviz/')
于 2020-08-22T05:57:51.610 回答
0

请使用 pydotplus 而不是 pydot

  1. 寻找:C:\Users\zhangqianyuan\AppData\Local\Programs\Python\Python36\Lib\site-packages\pydotplus

  2. 打开graphviz.py

  3. 找到第1925行-第1972行,找到函数:

    def create(self, prog=None, format='ps'):
    
  4. 在函数中找到:

    if prog not in self.progs:
        raise InvocationException(
            'GraphViz\'s executable "%s" not found' % prog)
    
    if not os.path.exists(self.progs[prog]) or \
            not os.path.isfile(self.progs[prog]):
        raise InvocationException(
            'GraphViz\'s executable "{}" is not'
            ' a file or doesn\'t exist'.format(self.progs[prog])
        )
    
  5. 在两个块之间添加这个(你的 Graphviz 的可执行路径):

      self.progs[prog] = "C:/Program Files (x86)/Graphviz2.38/bin/gvedit.exe"`
    
  6. 添加后的结果是:

    if prog not in self.progs:
        raise InvocationException(
            'GraphViz\'s executable "%s" not found' % prog)
    
    self.progs[prog] = "C:/Program Files (x86)/Graphviz2.38/bin/gvedit.exe"
    
    if not os.path.exists(self.progs[prog]) or \
            not os.path.isfile(self.progs[prog]):
        raise InvocationException(
            'GraphViz\'s executable "{}" is not'
            ' a file or doesn\'t exist'.format(self.progs[prog])
        )
    
  7. 保存更改的文件,然后您可以成功运行它。

  8. 您最好将其保存为 bmp 文件,因为 png 文件将不起作用。 图片在这里

于 2019-04-04T03:25:32.480 回答