Pydot 错误:文件格式“png”无法识别
Posted
技术标签:
【中文标题】Pydot 错误:文件格式“png”无法识别【英文标题】:Pydot error: file format "png" not recognized 【发布时间】:2016-02-14 04:50:51 【问题描述】:我需要通过 pydot 构建一个 pythonic 图形解决方案,并在尝试运行如下简单代码时:
import pydot
graph = pydot.Dot(graph_type='graph')
i=1
edge = pydot.Edge("A", "B%d" % i)
graph.add_edge(edge)
graph.write_png('graph.png')
它旨在在 png 文件上构建一个简单的图形 (A-B1)。 在修复了很多错误配置之后,现在我得到了:
Traceback (most recent call last):
File "/Users/zallaricardo/Documents/Python/test_png.py", line 7, in <module>
graph.write_png('graph.png')
File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/pydot.py", line 1809, in <lambda>
lambda path, f=frmt, prog=self.prog : self.write(path, format=f, prog=prog))
File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/pydot.py", line 1911, in write
dot_fd.write(self.create(prog, format))
File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/pydot.py", line 2023, in create
status, stderr_output) )
pydot.InvocationException: Program terminated with status: 1. stderr follows: Format: "png" not recognized. Use one of:
logout
到目前为止,我还找不到针对我的特定环境的直接解决方案。 关于如何修复它的任何提示? 需要适用于 python 2.7 和 mac os x 10.9。
我当前安装的包:
cycler==0.9.0
decorator==4.0.4
graphviz==0.4.7
matplotlib==1.5.0
networkx==1.10
numpy==1.10.1
pydot2==1.0.33
pyparsing==1.5.7
PyPDF2==1.25.1
python-dateutil==2.4.2
pytz==2015.7
six==1.10.0
wheel==0.26.0
我只想达到https://pythonhaven.wordpress.com/2009/12/09/generating_graphs_with_pydot/中显示的相同结果
【问题讨论】:
尝试使用write_raw
转储点文件,然后手动运行命令,即dot -Tjpeg -o/output/file -v /your/dot/file
。该命令的输出是什么?
@memoselyk 我不确定你用write_raw
转储点文件是什么意思,但dot -Tjpeg - ...
的输出是:dot - graphviz version 2.38.0 (20140413.2041) Format: "jpeg" not recognized. Use one of:
Use one of:
列表是否为空? dot -Tjpg:
呢?您是如何从 dpkg 安装 graphviz 或编译它(使用 Homebrew/Macports)的?也许你正在打这个bug,请尝试graphviz 2.39。
对于dot -Tjpg:
,输出为Format: "jpg:" not recognized. Use one of:
。提到的所有列表Use one of:
都是空的。我通过终端使用pip install graphviz
,安装graphviz 2.39后,运行最终渲染了png文件。谢谢@memoselyk!现在dot -Tjpeg -
命令的输出充满了graphviz 的东西。
【参考方案1】:
您能否尝试卸载pydot2
并安装pydot
?
$ pip uninstall pydot2
$ pip install pydot>=1.2.3
脚本没有任何变化,我得到了以下输出
【讨论】:
以上是关于Pydot 错误:文件格式“png”无法识别的主要内容,如果未能解决你的问题,请参考以下文章