在 Mac 上哪里添加 Graphviz 的可执行文件

bru*_*900 4 graphviz python-3.x

我正在尝试使用Graphviz,但收到错误消息:

graphviz.backend.ExecutableNotFound: failed to execute ['dot', '-Tpdf', '-O', 'test-output/aoc.gv.pdf'], make sure the Graphviz executables are on your systems' PATH
Run Code Online (Sandbox Code Playgroud)

我正在运行的代码是从文档中剪切并粘贴的:

from graphviz import Digraph, Graph
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')
dot.render('test-output/aoc.gv.pdf')
Run Code Online (Sandbox Code Playgroud)

文件将输出到正确的文件夹,文件就在那里,有 170 字节,但无法打开。我尝试过其他扩展,例如“gv”,但它们也不起作用。我使用的最新版本Graphviz是 0.10.1,我尝试在 PC 上打开此文件,但它在 PC 上也不起作用(我有一台 Mac)。这个问题类似于

找不到 Graphviz 的可执行文件(Python 3.4)

为什么 pydot 在 Windows 8 中无法找到 GraphViz 的可执行文件?

然而,我理解这些帖子存在重大障碍。第一,我对Python如何在计算机上执行知之甚少,所以我什至不知道什么是环境变量。其次,当他们引用计算机的路径时,我只能假设他们正在谈论正在执行模块的文件的目录Graphviz,但我不确定这一点。所以我添加了这行代码:

import sys
str1 = "/library/frameworks/python.framework/versions/3.6/lib/python3.6/site-packages/graphviz/"
sys.path.append(str1)
Run Code Online (Sandbox Code Playgroud)

但这是行不通的。第三,如果我要实施这一步:

将此字符串添加到变量值列表的末尾(包括分号):;C:\Program Files (x86)\Graphviz2.34\bin

然后我必须将其翻译成 Mac 版本,但我做不到。任何帮助,将不胜感激。

J_H*_*J_H 8

诊断表明它dot不在您的 $PATH 中,它没有出现在该环境变量提到的任何目录中。您希望尝试以下命令报告一些版本号:

$ dot -V
dot - graphviz version 2.40.1 (20161225.0304)
$
$ which dot
/usr/local/bin/dot
$
$ echo $PATH | tr : ' ' | fmt -w1 | grep local
/usr/local/bin
Run Code Online (Sandbox Code Playgroud)

如果您尚未使用 Brew,那么您应该使用。这是将此程序和许多其他程序安装到 Mac 上的最简单方法。访问https://brew.sh/并按照说明进行操作。然后输入:

$ brew install graphviz
...
$ /usr/local/bin/dot -V
Run Code Online (Sandbox Code Playgroud)

那应该工作得很好。如果dot -V显示“未找到”,则只需将正确的目录附加到您的 PATH 中:

$ export PATH="${PATH}:/usr/local/bin"
Run Code Online (Sandbox Code Playgroud)

如果您的 bash shell 可以运行它,那么您的 python 程序也应该可以。