python 中解决 Graphviz Executables Are Not Found 错误
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 代码。
- 类库
- 软件本身
我们已经通过 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。
-
打开安装文件并同意许可协议。
-
将 Graphviz 添加到系统 PATH,这对于使您的代码正常运行非常重要。 根据您的工作环境,您可以为所有用户或当前用户添加系统路径。
下图为所有用户选择。
-
选择安装位置并安装。
要验证 Graphviz 是否在我们的环境变量中,我们可以按照以下步骤操作:
-
搜索环境变量。
-
转到突出显示的按钮环境变量。
-
转到具有变量名称 Path 的突出显示行并双击它。
-
如果您最近安装了 Graphviz,则应使用最后的安装路径(突出显示),如下图所示
现在我们已经按照错误消息的子部分的建议验证了 Graphviz 位于我们的系统路径中,请确保 Graphviz 可执行文件位于系统的 PATH 上,关闭 IDE 并重新运行基于 Graphviz 的代码。
我们之前运行的导致错误的代码现在应该呈现并导出 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 问题
发布时间:2023/07/04 浏览次数:161 分类:Python
-
本文将讨论如何解决 Python 代码中的“reduce 未定义”错误。python 中使用functools解决NameError: name 'reduce' is not Defined
python 中解决 Raise JSONDecodeError(Expecting Value, S, err.value) From None
发布时间:2023/07/04 浏览次数:50 分类:Python
-
在 json 库中,有一个方法,loads(),它返回 JSONDecodeError 错误。 在本文中,我们将讨论如何解决此类错误并进行适当的处理。从 Python 中使用 try 的 None 中解决 raise JSONDecodeError("Expecting value", s,
解决 Python中 Attempted Relative Import With No Known Parent Package 错误
发布时间:2023/07/04 浏览次数:134 分类:Python
-
对导入系统的充分了解足以防止此类错误,包括 ImportError: attemptsrelative import with noknownparent package。 通过错误消息可以轻松排除问题的根源。
Python 错误 TypeError: Unsupported Operand Type(s) for +: 'NoneType' and 'Int'
发布时间:2023/07/04 浏览次数:114 分类:Python
-
在 Python 中,当您将整数值与空值相加时,会出现 TypeError: unsupported operand type(s) for +: 'NoneType' and 'int' 。 我们将在本文中讨论 Python 错误以及如何解决它。
Python 中错误 ModuleNotFoundError: No Module Named Openpyxl
发布时间:2023/07/04 浏览次数:79 分类:Python
-
本文将讨论 Python 的 No module named 'openpyxl' 错误。 当我们导入的模块未安装或位于另一个目录中时,会出现 ModuleNotFoundError。
Python 错误 Error: Bash: Syntax Error Near Unexpected Token '('
发布时间:2023/07/04 浏览次数:147 分类:Python
-
本篇文章将讨论错误:Bash: syntax error near unexpected token '('。Python 错误:Bash: syntax error near unexpected token '('您的计算机上需要安装 Python,解释器才能查找并运行 Python 文件。
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 链接时,此错误是
Python 错误 ValueError: Cannot Convert Float NaN to Integer
发布时间:2023/05/31 浏览次数:116 分类:Python
-
本篇文章将介绍如何修复 ValueError: cannot convert float NaN to integer 。使用 fillna() 方法修复python错误 ValueError: cannot convert float NaN to integer