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

时间:2019-03-03 08:36:03

标签: python-3.x graphviz

我正在尝试使用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

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

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')

该文件将输出到正确的文件夹,并且该文件在那里,它有170个字节,但不会打开。我尝试了其他扩展程序,例如'gv',但它们也不起作用。我使用的是Graphviz的最新版本,即0.10.1,并且我尝试在PC上打开该文件,但在PC上也不起作用(我有Mac)。这个问题类似于

Graphviz's executables are not found (Python 3.4)

Why is pydot unable to find GraphViz's executables in Windows 8?

但是,我对这些帖子的理解有很多绊脚石。第一,我对在计算机上执行Python的方式了解甚少,所以我什至不知道环境变量是什么。其次,当他们引用计算机的PATH时,我只能假定他们正在谈论正在执行Graphviz模块的文件的目录,但是我不确定。因此,我添加了以下代码行:

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

但这不起作用。第三,如果我要执行此步骤:

  

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

然后我必须将其转换为与Mac对应的版本,但我无法。任何帮助将不胜感激。

2 个答案:

答案 0 :(得分:0)

诊断是说public class actions { public Vector<String> getDataForCurrentUser() { // Access the AL_data arraylist stored in the App application scoped bean ArrayList<District> m = Application.get().AL_data; } 不在$ PATH中,它没有出现在该env var提及的任何目录中。您希望在使用以下命令报告某些版本号时达到一个目的:

dot

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

$ 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

那应该很好。如果$ brew install graphviz ... $ /usr/local/bin/dot -V 表示“未找到”,则只需将适当的目录附加到PATH:

dot -V

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

答案 1 :(得分:0)

问题解决了。我花了一段时间才弄清楚我必须先下载一些非pythonic软件,然后才能使pythonic软件正常工作。

foo.func

在第1步中,我之前已经做过,但是收到一条错误消息。它告诉我更改某些文件的所有权,所以我做到了。然后尝试

foo2.func
再次

就成功了。