75

我在 Windows 8 中安装了 GraphViz 2.32,并将 C:\Program Files (x86)\Graphviz2.32\bin 添加到 System 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

我找到了这个https://code.google.com/p/pydot/issues/detail?id=65但无法解决问题。

4

27 回答 27

77

问题是 pydot 模块找不到 GraphViz 的路径,如回溯中所示:

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

我通过将 GraphViz bin 目录添加到计算机的 PATH 中解决了我的 Windows 7 机器上的这个问题。然后重新启动我的 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
于 2013-12-08T20:26:07.327 回答
68

在 Macbrew install graphviz上为我解决了这个问题。

于 2014-05-07T16:37:22.883 回答
32

发生这种情况是因为我在安装 pydot 后安装了 graphviz。因此,pydot 无法找到它。以正确的顺序重新安装它解决了这个问题。

于 2013-08-26T11:24:36.710 回答
24

我尝试通过控制面板添加 PATH,但还需要重新启动命令提示符。以下内容也适用于在不退出的情况下更新 Notebook 会话中的路径:

import os     

os.environ["PATH"] += os.pathsep + 'C:/Program Files (x86)/Graphviz2.38/bin/'
于 2016-09-15T14:30:57.617 回答
20

在我的情况下,来自 Sadik pydot 和 graphviz 错误的回答:无法导入 dot_parser,无法在 Ubuntu 12.04.5 LTS 上加载点文件

sudo apt-get install python-pydot

于 2014-08-15T02:19:25.933 回答
9

您需要从Graphviz安装,然后只需将安装 Graphviz 的文件夹路径及其 bin 目录添加到系统环境路径。

于 2014-01-10T04:34:57.617 回答
8

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

1. 下载并安装 graphviz-2.38.msi https://graphviz.gitlab.io/_pages/Download/Download_windows.html

2. 设置路径变量

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

  1. 重新启动当前正在运行的需要路径的应用程序
于 2017-07-29T19:07:59.807 回答
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'

就是这样,但请注意,如果您重新启动内核,每次都必须运行这些命令

于 2018-10-05T08:51:25.430 回答
4

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

import pydot pydot.find_graphviz() 确保在“bin”之后有一个斜杠,以便它从文件夹内获取所有内容,我尝试不使用斜杠,上面的代码没有返回任何内容,但是在添加斜杠后它返回了 graphviz 可执行文件需要和他们的路径。

于 2013-10-15T15:08:58.677 回答
4

对我来说:(Win10,Anaconda3)确保你已经完成了“conda install graphviz”

我必须添加到 PATH:C:\Users\username\Anaconda3\Library\bin\graphviz

要修改 PATH,请转到控制面板 > 系统和安全 > 系统 > 高级系统设置 > 环境变量 > 路径 > 编辑 > 新建

确保在此之后重新启动您的 IDE。它应该工作

于 2017-07-12T14:03:28.547 回答
2

在 Windows 中,即使在安装了 graphviz-2.38.msi 之后,您也可以在 pydot.py 中添加自己的路径(位于 site-package 文件夹下)

 if os.sys.platform == 'win32':

    # Try and work out the equivalent of "C:\Program Files" on this
    # machine (might be on drive D:, or in a different language)
    #

    if os.environ.has_key('PROGRAMFILES'):

        # Note, we could also use the win32api to get this
        # information, but win32api may not be installed.

        path = os.path.join(os.environ['PROGRAMFILES'], 'ATT', 'GraphViz', 'bin')

    else:

        #Just in case, try the default...
        path = r"C:\PYTHON27\GraphViz\bin"  # add here.
于 2016-11-29T01:32:03.483 回答
2

我也有同样的问题,我终于通过查看库来解决它。

该库考虑将路径设置为C:\Program Files\ATT\Graphviz\bin但默认情况下 Graphviz 安装到C:\Program Files(x86)\Graphviz经历 32 位标准,因此pydot无法获得所需小路。只需根据脚本的要求移动目录即可。

PS:-考虑对 Environmnet 变量进行等效更改。

PSS:- 还要检查 Graphviz 是直接在 Program Files(x86) 下还是在 ATT 下。

于 2017-06-23T10:42:29.423 回答
1

在此处安装 Graphviz 并添加其 bin 路径解决了我的问题

https://graphviz.gitlab.io/_pages/Download/Download_windows.html

pip install Graphviz 本身似乎不够用

于 2019-01-28T05:27:13.383 回答
1

在“pydot.py”(位于 ...\Anaconda3\Lib\site-packages)中,替换:

def get_executable_extension():
    # type: () -> str
    if is_windows():
        return '.bat' if is_anacoda() else '.exe'
    else:
        return ''

和:

def get_executable_extension():
    # type: () -> str
    if is_windows():
        return '.exe'
    else:
        return ''

当系统是“Windows/Anaconda”与“Windows”并且可能没有与“.exe”关联的“.bat”时,似乎没有任何添加“.bat”的方法。这似乎比为每个可执行的 pydot 调用添加“.bat”更好......

于 2019-09-04T10:14:44.947 回答
1

关于graphviz的一些事情:

  1. graphviz 不仅是一个 python 模块,它还是一个独立的程序。我相信你需要两者都让 graphviz 工作。
  2. 独立的 graphviz 程序最初由 AT&T 开发,开源,然后被放弃。该软件包的当前维护者忘记了包含 Windows 注册表项,以便 Python 可以找到该程序的可执行文件。
  3. pydotplus\graphviz.py 的第 620 行包含一个备份路径,用于在注册表中找不到 graphviz 时查找它。它使用旧的 ATT 文件路径。将文件路径更新为您机器上的文件路径(您需要具有管理员权限),graphviz 应该可以与 pydotplus 一起使用。

例子:

# Just in case, try the default... path = r"C:\Program Files (x86)\Graphviz2.38\bin"

于 2019-04-09T21:20:37.243 回答
1

我正在运行 Windows 10 机器并且也遇到了一些问题。我通过 msi 安装程序安装了 graphviz。通过系统设置添加对我不起作用。

我使用 msi 删除了安装,并使用了 windows 包管理器Chocolatey 。删除已安装的版本是必要的,否则巧克力将无法安装。

现在它运行良好。我建议这样做。

于 2018-03-22T16:11:37.027 回答
1

这是我为上述问题所做的。我正在使用 Windows 10 操作系统和 python 3.6.5

  1. 单击此处安装 PIP

  2. 打开命令提示符并键入命令“pip install graphviz”

  3. 转到我的电脑(这台电脑)并使用关键字“graphviz”搜索

  4. 打开graphviz文件夹并复制其路径并将其保存在记事本中

  5. 在 graphviz 中查找 bin 文件夹并通过鼠标右键单击复制该文件夹

  6. 现在再次回到我的电脑并搜索“pydotplus”

  7. 将显示一个名为pydotplus的文件夹。打开它并粘贴您之前复制的 bin 文件夹(Graphviz)的副本

  8. 前往控制面板>系统和安全>系统设置>高级设置>环境变量>添加新路径

  9. 添加您在记事本中复制的路径,然后单击一系列“确定”

就是这样,您现在可以享受使用 graphviz 的乐趣了

于 2018-06-06T07:08:42.333 回答
0

我遇到了这个问题,并注意到它正在用两组双引号打印我的 PATH。我通过将以下内容添加到第 1959 行来解决该问题:

C:\Anaconda\Lib\site-packages\pydot.py

self.progs[prog] = os.path.normpath(self.progs[prog][1:-1])

显然不是最好的解决方法,但它让我度过了一天。

于 2013-11-18T00:37:31.240 回答
0

在 Anaconda 发行版上,pip install 不起作用。我做了一个pip uninstall graphviz,,pip uninstall pydot然后我做了conda install graphviz,然后conda install pydot,按这个顺序,然后它工作了!

于 2019-10-26T05:28:18.673 回答
0

您可以使用 pydotplus 代替 pydot。然后按照以下说明操作:

首先,找到C:\Users\zhangqianyuan\AppData\Local\Programs\Python\Python36\Lib\site-packages\pydotplus

二、开graphviz.py

三、找到第1925行-第1972行,找到函数def create(self, prog=None, format='ps'):

最后,在函数中:

  1. 寻找:

    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])
        )
    
  2. 在两个块之间添加这个(你的 Graphviz 的可执行路径):

    self.progs[prog] = "C:/Program Files (x86)/Graphviz2.38/bin/gvedit.exe"

  3. 添加后的结果是:

    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])
        )
    
  4. 保存更改的文件,然后您可以成功运行它。

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

于 2019-04-04T02:51:04.083 回答
0

如果您不想弄乱路径变量(例如,如果您不是管理员)并且如果您在 Windows 上工作,您可以执行以下操作,为我解决了问题。

在编辑器中打开graphviz.py(可能位于)。...Anaconda\pkgs\graphviz***\Library\bin如果找不到它,您可以通过错误消息打开它。

转到函数__find_executables并替换:

elif os.path.exists(os.path.join(path, prg + '.exe')):
   if was_quoted:
      progs[prg] = '"' + os.path.join(path, prg + '.exe') + '"'
   else:
      progs[prg] = os.path.join(path, prg + '.exe')

elif os.path.exists(os.path.join(path, prg + '.bat')):
   if was_quoted:
      progs[prg] = '"' + os.path.join(path, prg + '.bat') + '"'
   else:
      progs[prg] = os.path.join(path, prg + '.bat')
于 2019-07-01T14:23:01.457 回答
0

我使用 conda install python-graphviz 然后 conda install pydot 然后 conda install pydot plus 然后它工作了。

所以:

conda install python-graphviz
conda install pydot
conda install pydotplus
于 2020-05-17T14:37:08.957 回答
0

尝试了所有解决方案/发布/博客中描述的所有安装顺序,最终意识到 anaconda 无法读取环境变量。关闭 Anaconda 和 Spyder。然后以管理员模式(在 Windows 64 位操作系统机器上)打开 Anaconda,然后打开 Spyder。脚本在 PYDOT 调用中运行良好。

于 2017-12-27T01:42:17.233 回答
0

我找到了一个手动解决方案: sudo apt-get install graphviz

graph.write('test.dot') dot -Tps test.dot -o outfile.ps

你可以在这里的文件:https ://github.com/jecs89/LearningEveryDay/tree/master/GP

于 2017-11-27T15:48:35.263 回答
0

解决方案很简单,您只需从此处下载并安装 Graphviz 。

然后将路径变量设置为 bin 目录,在我的例子中是C:\Program Files (x86)\Graphviz2.38\bin. 最后,做conda install python-graphviz它应该可以正常工作。

于 2019-08-23T07:39:13.847 回答
0

我没有使用 Windows 机器,我在 linux 平台上。我在使用 python 包 pyAgrum 绘制贝叶斯网络的上下文中遇到了这个可执行文件未找到的问题。pyAgrum 使用 graphviz 绘制网络。conda install <package name>我在 python 3.6.4 环境(即)中使用 anaconda 平台安装了 pyagrum 和 graphviz 。

我在目录中找到了可执行文件/conda/envs/<environment name>/bin。所以,这只是让我的笔记本内核找到它们的问题。

如果您import os是 ,请使用该命令os.environ['PATH'].split(os.pathsep)查看您的环境正在查找的可执行路径。如果包含您的 graphviz 可执行文件的路径不存在,您可以通过执行以下操作来添加它os.environ['PATH'] += os.pathsep + <path to executables>

我想这个解决方案将在我的上下文之外起作用。此解决方案的主要缺点是每次重新启动内核时都需要这样做。

于 2018-03-08T15:36:46.753 回答
0

在完成所有graphviz的安装后,添加到环境变量的PATH,你需要添加这两行:

import os
os.environ["PATH"] += os.pathsep + 'C:/Program Files (x86)/Graphviz2.38/bin/'
于 2020-06-03T15:11:23.590 回答