pygraphviz OSError:格式:“点”无法识别。使用以下之一:
Posted
技术标签:
【中文标题】pygraphviz OSError:格式:“点”无法识别。使用以下之一:【英文标题】:pygraphviz OSError: Format: "dot" not recognized. Use one of: 【发布时间】:2019-11-30 06:09:12 【问题描述】:我想用 pygraphviz 绘制 DEAP 生成的树。我尝试按照DEAP document 中的示例进行操作,但出现以下错误:
Traceback (most recent call last):
File "<input>", line 24, in <module>
File "C:\Users\xxyao\program\anaconda\envs\rf\lib\site-packages\pygraphviz\agraph.py", line 1399, in layout
data = self._run_prog(prog, ' '.join([args, "-T", fmt]))
File "C:\Users\xxyao\program\anaconda\envs\rf\lib\site-packages\pygraphviz\agraph.py", line 1364, in _run_prog
raise IOError(b"".join(errors).decode(self.encoding))
OSError: Format: "dot" not recognized. Use one of:
Use one of:
之后似乎应该有一些词,但没有。我的环境是Python==3.6
,graphviz==3.41
,pygraphviz==1.5
。graphviz
和pygraphviz
是通过conda
安装的。
顺便说一下,我尝试了以下方法:
-
安装graphviz并将
C:\Program Files (x86)\Graphviz2.38\bin
添加到系统环境。
conda install pydot
, conda install pydot-ng
但还是不行。
更多信息:pygraphviz
提供的其他布局,例如neato fdp twopi
效果很好。只有dot
不起作用!
【问题讨论】:
PATH中是否有dot程序? 抱歉不知道怎么在PATH中添加dot程序... 请在网上搜索“如何修改路径”或搜索堆栈溢出我认为还有其他关于同一topi的问题(conda、graphviz和路径问题) 很抱歉再次打扰。我尝试了以下方法:1,安装graphviz并将C:\Program Files (x86)\Graphviz2.38\bin
添加到系统环境中。 2、conda install pydot
、conda install pydot-ng
。但它仍然无法正常工作。你能告诉我点程序是什么意思吗?非常非常感谢!!
在C:\Program Files (x86)\Graphviz2.38\bin
目录下应该有一个叫做dot.exe的程序。您可以使用where dot
验证这一点。当程序存在时,您可以在终端窗口中输入命令dot --version
以查看是否可以启动它,如果他成功,则它必须是 conda pydot 安装中的某些东西,它推翻了标准路径(我不知道 conda工具/pydot 安装)。
【参考方案1】:
我遇到了同样的问题。并通过在 conda cmd 中执行“dot -c”来解决它。
【讨论】:
谢谢您,先生!这适用于 conda 中的 Windows 10 和 pyton 3.8.5【参考方案2】:没错,只要打开anaconda Prompt环境 并输入“dot -c”命令并修复错误。
enter image description here
【讨论】:
如果你觉得答案有用,请点赞,不要转发。【参考方案3】:我做了一些可能被认为有点作弊的东西,但希望它有所帮助。 首先,agraph.py 会考虑目录的位置,因此您可能希望将工作点放在其他点之前
import os
os.environ["PATH"] = "C:\\Program Files\\Graphviz\\bin" + os.pathsep + os.getenv("PATH")
然后我更改了 agraph.py 文件,它可能位于“C:\Users\xxyao\program\anaconda\envs\rf\lib\site-packages\pygraphviz\agraph.py”,第 1561 行
if os.name == "nt":
进入
if os.name == "nt" or os.name == "dot":
【讨论】:
【参考方案4】:关注@Saul 答案对我有用。我认为根本原因可能是 agraph.py
只允许有限的 PATH 环境变量,所以即使你添加 C:\\Program Files\\Graphviz\\bin
仍然不起作用。
但要小心,我建议这种方式的解决方案应该通过以下方式保护
GVZPath = "C:\\Program Files\\Graphviz\\bin"
if (os.getenv("PATH").find(GVZPath))!=0:
os.environ["PATH"] = "C:\\Program Files\\Graphviz\\bin" + os.pathsep + os.getenv("PATH")
【讨论】:
以上是关于pygraphviz OSError:格式:“点”无法识别。使用以下之一:的主要内容,如果未能解决你的问题,请参考以下文章
pygraphviz ValueError:在路径中找不到程序点[重复]