迹忆客 专注技术分享

当前位置:主页 > 学无止境 > 编程语言 > Python >

python 中解决 Graphviz Executables Are Not Found 错误

作者:迹忆客 最近更新:2023/07/04 浏览次数:

Graphviz 是一个包含开源工具的软件包,可帮助绘制图表,可在 Linux、Windows 和 macOS 上使用。

在 Python 中,我们可以使用 Graphviz 可执行文件以及包来创建图形。 然而,人们在使用它时常常会因为不同的原因而遇到问题。

本文介绍了如何解决运行 Python 脚本时未找到 Graphviz 可执行文件的错误。


安装Graphviz解决Python中 Graphviz executables are not found 错误

在向您展示如何解决该错误之前,让我们编写一段代码,使用 Graphviz Python 包创建一个简单的图形(假设您已经安装了 Graphviz python 包)。

import graphviz

dot = graphviz.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('doctest-output/round-table.gv', view=True)

上面代码的输出:

// The Round Table
digraph {
    A [label="King Arthur"]
    B [label="Sir Bedevere the Wise"]
    L [label="Sir Lancelot the Brave"]
    A -> B
    A -> L
    B -> L [constraint=false]
}

Traceback (most recent call last):
  File "C:\Python310\lib\site-packages\graphviz\backend\execute.py", line 81, in run_check
    proc = subprocess.run(cmd, **kwargs)
  File "C:\Python310\lib\subprocess.py", line 501, in run
    with Popen(*popenargs, **kwargs) as process:
  File "C:\Python310\lib\subprocess.py", line 969, in __init__
    self._execute_child(args, executable, preexec_fn, close_fds,
  File "C:\Python310\lib\subprocess.py", line 1438, in _execute_child
    hp, ht, pid, tid = _winapi.CreateProcess(executable, args,
FileNotFoundError: [WinError 2] The system cannot find the file specified

上述异常是导致以下异常的直接原因:

Traceback (most recent call last):
  File "c:\Users\akinl\Documents\HTML\python\graphz.py", line 11, in <module>
    dot.render('doctest-output/round-table.gv', view=True)
  File "C:\Python310\lib\site-packages\graphviz\_tools.py", line 171, in wrapper
    return func(*args, **kwargs)
  File "C:\Python310\lib\site-packages\graphviz\rendering.py", line 122, in render
    rendered = self._render(*args, **kwargs)
  File "C:\Python310\lib\site-packages\graphviz\_tools.py", line 171, in wrapper
    return func(*args, **kwargs)
  File "C:\Python310\lib\site-packages\graphviz\backend\rendering.py", line 324, in render
    execute.run_check(cmd,
  File "C:\Python310\lib\site-packages\graphviz\backend\execute.py", line 84, in run_check
    raise ExecutableNotFound(cmd) from e
graphviz.backend.execute.ExecutableNotFound: failed to execute WindowsPath('dot'), make sure the Graphviz executables are on your systems' PATH

错误消息的重要部分如下:

graphviz.backend.execute.ExecutableNotFound: failed to execute WindowsPath('dot'), make sure the Graphviz executables are on your systems' PATH

问题是 Graphviz 可执行文件对于 Python 代码不可用,并且不存在于 PATH 变量中。 PATH 变量允许我们从软件可执行目录之外的任何目录访问软件。

因此,如果您没有 Graphviz,则必须安装它。 如果已安装,则必须将其添加到系统的 PATH 中。

因此,我们需要两件事才能成功运行 Graphviz 代码。

  1. 类库
  2. 软件本身

我们已经通过 pip 拥有了该库:

pip install graphviz

要安装 Graphviz,请转到其下载页面,然后按照每个操作系统的下载说明进行操作。 对于 Linux 操作系统(例如 Ubuntu、Fedora),您可以使用以下命令:

sudo apt install graphviz
sudo yum install graphviz

对于 macOS,您可以使用以下命令。

sudo port install graphviz

但是,如果您安装了 Homebrew,则可以使用:

brew install graphviz

有不同的方法和过程可以通过 Chocolatey、Windows 包管理器、Cygwin 或典型的 Windows 包为 Windows 安装它。 这里,我们将使用典型的安装包(64位版本5.0.0),大约大约4.728 MB。

  1. 打开安装文件并同意许可协议。

    Graphviz 设置

  2. 将 Graphviz 添加到系统 PATH,这对于使您的代码正常运行非常重要。 根据您的工作环境,您可以为所有用户或当前用户添加系统路径。

    下图为所有用户选择。

    安装选项

  3. 选择安装位置并安装。

    选择安装位置

要验证 Graphviz 是否在我们的环境变量中,我们可以按照以下步骤操作:

  1. 搜索环境变量。

    搜索环境变量

  2. 转到突出显示的按钮环境变量。

    环境变量

  3. 转到具有变量名称 Path 的突出显示行并双击它。

    选择路径

  4. 如果您最近安装了 Graphviz,则应使用最后的安装路径(突出显示),如下图所示

    编辑环境变量

现在我们已经按照错误消息的子部分的建议验证了 Graphviz 位于我们的系统路径中,请确保 Graphviz 可执行文件位于系统的 PATH 上,关闭 IDE 并重新运行基于 Graphviz 的代码。

我们之前运行的导致错误的代码现在应该呈现并导出 PDF。

PDF导出

并且您的输出应该没有任何错误。

// The Round Table
digraph {
    A [label="King Arthur"]
    B [label="Sir Bedevere the Wise"]
    L [label="Sir Lancelot the Brave"]
    A -> B
    A -> L
    B -> L [constraint=false]
}

上一篇:解决 Python中的 Reduce Is Not Defined 问题

下一篇:没有了

转载请发邮件至 1244347461@qq.com 进行申请,经作者同意之后,转载请以链接形式注明出处

本文地址:

相关文章

Python 中错误 CSV.Error: Line Contains Null Byte

发布时间:2023/07/04 浏览次数:111 分类:Python

在 Python 中创建 CSV 文件 Python 中的 _csv.Error: line contains NULL byte 错误 假设您在尝试读取 CSV 文件时收到 _csv.Error: line contains NULL byte,很可能是因为文件中存在一个或多个 NULL 字节。

Python 中错误 AttributeError: Module Urllib Has No Attribute Request

发布时间:2023/07/04 浏览次数:106 分类:Python

Python 将缓存导入,因为您正在使用导入的模块供其自身使用,使其成为对象的一部分。Python 中 AttributeError:module 'urllib' has no attribute 'request' 当您尝试通过导入 URL 库打开 URL 链接时,此错误是

扫一扫阅读全部技术教程

社交账号
  • https://www.github.com/onmpw
  • qq:1244347461

最新推荐

教程更新

热门标签

扫码一下
查看教程更方便