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

"dot.exe" not found in path. Pydot on Python (Windows 7)

我在 运行Python 上 Windows 上的 pydot 遇到了问题 7.

我安装了 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 文件所在的位置。但我仍然得到错误。

我还能尝试什么?

我遵循了 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/'

使用 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

我遇到了这个问题,发现如果您使用的是 Visual Studio 代码集成命令行,那么您应该确保重新启动 Visual Studio 代码(您可能只需要重新启动命令行)否则路径更改不会发生...

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

如果你在 Python 3:

,请不要使用以下命令
conda install pydot-ng 

这会将您的安装带到 Python 2.7

改用

conda install graphviz

其他解决方案对我不起作用,我发现 pydot 试图 运行 硬编码 dot.bat 所以我刚刚创建 dot.bat wrapper nearby dot.exe 并且有效:

@echo off
dot %*

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

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

如果它不起作用...您输入错误的内容 =)

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

祝你有愉快的一天!

在 Ubuntu 18.04 安装带有 sudo apt-get install graphviz 的二进制文件导致 dot 被放置在 /usr/bin/dot 下(根据他们的 [= 它可能会转到 /usr/local/bin/dot 16=]). 完成后:

pip3 install pydot-ng

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

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

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

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