在路径中找不到“dot.exe”。 Python 上的 Pydot (Windows 7)

Posted

技术标签:

【中文标题】在路径中找不到“dot.exe”。 Python 上的 Pydot (Windows 7)【英文标题】:"dot.exe" not found in path. Pydot on Python (Windows 7) 【发布时间】:2017-03-30 16:08:06 【问题描述】:

我在 Windows 7 上运行 Python 的 pydot 时遇到问题。

我安装了 pydot:conda install -c rmg pydot=1.2.2

我在../Program Files (x86)/Graphviz2.38/下安装了graphviz

当我运行以下脚本时,我收到一条错误消息

"dot.exe" not found in path
import pydot
graph = pydot.Dot(graph_type='digraph')
node_a = pydot.Node("Node A", style="filled", fillcolor="red")
node_b = pydot.Node("Node B", style="filled", fillcolor="green")
node_c = pydot.Node("Node C", style="filled", fillcolor="#0000ff")
node_d = pydot.Node("Node D", style="filled", fillcolor="#976856")
graph.add_node(node_a)
graph.add_node(node_b)
graph.add_node(node_c)
graph.add_node(node_d)
graph.add_edge(pydot.Edge(node_a, node_b))
graph.add_edge(pydot.Edge(node_b, node_c))
graph.add_edge(pydot.Edge(node_c, node_d))
graph.add_edge(pydot.Edge(node_d, node_a, label="and back we go again", labelfontcolor="#009933", fontsize="10.0", color="blue"))
graph.write_png('example2_graph.png')

Exception: "dot.exe" not found in path.

我已经尝试过这个解决方案:Permanently adding a file path to sys.path in Python,通过添加 my-paths.pth 文件并带有一行指向 ../Graphiv2.38/bin/ dot.exe 文件所在的位置。但我仍然得到错误。

我还能尝试什么?

【问题讨论】:

您需要在环境变量 %PATH% 中添加 dot.exe 的绝对路径,而不是相对路径。如果这不起作用,请使用 %PATH% 转储的屏幕截图更新您的帖子。非常重要,Windows 路径仅适用于反斜杠。 【参考方案1】:

我对 conda 有过一些非常糟糕的经历,所以要不惜一切代价避免它造成的混乱。

幸运的是,这里的每个答案都不必要地使用了 conda。您可以简单地使用pip install pydot 安装此软件包,然后按照接受的答案中所述将Graphviz 添加到您的路径后,此错误已解决。 (视窗)

【讨论】:

【参考方案2】:

在 Ubuntu 18.04 上安装带有 sudo apt-get install graphviz 的二进制文件导致 dot 被放置在 /usr/bin/dot 下(根据他们的 installation guide 可能会转到 /usr/local/bin/dot)。 做完之后:

pip3 install pydot-ng

并将以下几行(类似于@Ernest 在 Linux 中的回答)添加到它工作的脚本中:

import os
os.environ["PATH"] += os.pathsep + "/usr/bin/dot"

【讨论】:

【参考方案3】:

在这种情况下,当系统上的程序找不到资源时,请按照以下快速步骤操作:

运行一个简单的命令提示符,键入并执行所需的命令(可以是“dot.exe”) 如果是,您的系统配置良好,可能是由于代码中的硬配置方式,找不到可执行文件(需要找到文件的特定位置,例如:程序检查 C:\Program Files\Anaconda3 \pkgs\graphviz 并将二进制文件放入 C:\Program Files\graphviz)。 如果没有,则需要手动添加。在环境变量中添加包含二进制文件的目录(例如'my_location\graphviz\bin')。如果您对计算机的所有用户都需要它,请将其放在系统“路径”中(需要断开用户帐户以考虑),否则放在用户“路径”中(需要重新打开所需的程序)。然后通过重新打开命令提示符并键入命令来检查它。

如果它不工作...你输入错误的东西 =)

一些建议:Rapid Environment Editor 非常适合配置 Windows 环境变量;)

祝你有美好的一天!

【讨论】:

【参考方案4】:

我遇到了麻烦,发现如果您使用的是 Visual Studio Code 集成命令行,那么您应该确保重新启动 Visual Studio Code(您可能只需要重新启动命令行),否则 PATH 会更改不会发生...

【讨论】:

我认为它适用于任何编辑器。使用 PyCharm 也需要重新启动它。【参考方案5】:

使用django-extensions 为您的 Django 应用程序生成模型图,我这样做了,并且成功了:

pip install django-extensions
pip install pyparsing
pip install graphviz
pip install pydot
conda install graphviz

django-extensions 添加到您的INSTALLED_APPS,然后将C:\Program Files\Anaconda3\pkgs\graphviz-2.38.0-4\Library\bin\graphviz 添加到我的系统路径变量中。 然后最后正常:

python manage.py graph_models -a -g -o pic.png

【讨论】:

【参考方案6】:

其他解决方案对我不起作用,我发现 pydot 试图运行硬编码的 dot.bat,所以我刚刚在 dot.exe 附近创建了 dot.bat 包装器并且它起作用了:

@echo off
dot %*

【讨论】:

【参考方案7】:

如果您使用的是 Python 3,请不要使用以下命令:

conda install pydot-ng 

这会将您的安装带到 Python 2.7

改为使用

conda install graphviz

【讨论】:

【参考方案8】:

在 cmd 中键入 conda install pydot graphviz,然后将可执行文件位置目录 C:\Anaconda3\pkgs\graphviz-2.38-hfd603c8_2\Library\bin\graphviz 添加到系统路径变量中。这行得通!

【讨论】:

有效!似乎无需更改系统路径即可在conda 环境和关联的python 中使用graphvizpydot【参考方案9】:

我按照this blog 中的说明进行操作。

然后我从here 安装了graphviz,并将C:\Program Files (x86)\Graphviz2.38\bin 添加到PATH

接下来我做了:

conda install pydot-ng 

最后我在我的笔记本中添加了以下两行。

import os
os.environ["PATH"] += os.pathsep + 'C:/Program Files (x86)/Graphviz2.38/bin/'

【讨论】:

这个解决方案也对我有用,只是现在可以在以下位置找到下载:graphviz.org/download 虽然我手动将 Graphviz 添加到 PATH,但仅添加两行就解决了我的问题。 可能需要注意,您可能不需要 conda install pydot-ng。那回滚了我的python版本,这需要一些工作才能撤消。 import os 和 os.environ 就像一个魅力 请不要忽略他的最后一点:import os and os.environ["PATH"] += os.pathsep + 'C:/Program Files (x86)/Graphviz2.38/bin/ ' 您可以使用conda install graphviz 安装二进制文件,然后将它们放在您的路径中,而不是Program Files

以上是关于在路径中找不到“dot.exe”。 Python 上的 Pydot (Windows 7)的主要内容,如果未能解决你的问题,请参考以下文章

Python 2.7 在其搜索路径中找不到模块

OSError: [WinError 126] 在 Python 中找不到指定的模块

pygraphviz ValueError:在路径中找不到程序点[重复]

开始菜单中找不到安装好的anaconda怎么办

net反混淆脱壳工具de4dot的使用

Mac+Python环境使用phantomjs时报在PATH中找不到