在路径中找不到“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 中使用graphviz
和pydot
。【参考方案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)的主要内容,如果未能解决你的问题,请参考以下文章
OSError: [WinError 126] 在 Python 中找不到指定的模块