3

以下代码:

import pygraphviz as p

def main():
    A=p.AGraph()
    A.add_edge(1,2)
    A.layout(prog="dot")
    A.draw("1.png")

if __name__ == '__main__':
    main()

wokrs 在本地很好,但是当通过 Heroku bash 启动时,它返回 IO 错误:

Format: "png" not recognized. Use one of: canon cmap cmapx cmapx_np dot eps fig gv imap imap_np ismap pic plain plain-ext pov ps ps2 svg svgz tk vml vmlz xdot

我用这个 buildpack 上传 graphviz

heroku config:get BUILDPACK_URL
    https://github.com/mfenniak/heroku-buildpack-python-graphviz.git

这是我的requierments.txt文件:

Django==1.7.1
argparse==1.2.1
dj-database-url==0.3.0
dj-static==0.0.6
django-toolbelt==0.0.1
gunicorn==19.1.1
psycopg2==2.5.4
pygraphviz==1.3rc2
static3==0.5.1
wsgiref==0.1.2      

本地graphviz版本:

dpkg -p graphviz
    Version: 2.26.3-10ubuntu1.1

至于 Herokugraphviz版本,我不确定,但我在 buildpack 的bin/compile文件中找到了这一行:

GRAPHVIZ_BINARY="https://s3-us-west-2.amazonaws.com/mfenniak-graphviz/graphviz-2.30.tgz"

pygraphviz在 Heroku 和本地有相同的版本

UPD:如何至少检查 Heroku 的 graphviz 版本?

heroku 的UPD dot版本png在设备部分没有。如何解决?

dot -v
dot - graphviz version 2.30.1 (20130508.0026)
libdir = "/app/mfenniak/graphviz/lib/graphviz"
Activated plugin library: libgvplugin_dot_layout.so.6
Using layout: dot:dot_layout
Activated plugin library: libgvplugin_core.so.6
Using render: dot:core
Using device: dot:dot:core
The plugin configuration file:
    /app/mfenniak/graphviz/lib/graphviz/config6
        was successfully loaded.
    render  :  dot fig map pic pov ps svg tk vml xdot
    layout  :  circo dot fdp neato nop nop1 nop2 osage patchwork sfdp twopi
    textlayout  : 
    device  :  canon cmap cmapx cmapx_np dot eps fig gv imap imap_np ismap pic plain plain-ext pov ps ps2 svg svgz tk vml vmlz xdot
    loadimage   :  (lib) eps gif jpe jpeg jpg png ps svg

这个线程看起来很相似,但不幸的是不是我的情况。 PyGraphViz agraph.layout() 抛出 I0 错误

4

4 回答 4

4

您的 graphviz 可执行文件中似乎没有 png 支持。运行 'dot -v' 以查看支持的格式。看起来像'svg'这样你可以试试A.draw("1.svg")

于 2014-11-06T21:05:54.230 回答
1

我也遇到过这个问题。很困扰我。但是,当我碰巧输入下面的代码时:

import pydot
print pydot.find_graphviz() 

它显示路径导致matlab而不是Graphviz然后我明白这可能是原因所以我卸载了matlab并最终解决了这个问题!

我想知道你的电脑是否也安装了matlab,那么试试这个方法。愿它帮助你。

于 2016-07-18T02:27:24.610 回答
0

我按照上一张票的建议再次尝试重新安装graphviz,错误仍然存​​在。可能我没有正确配置它。

无论如何,如果您使用的是 Debian/Ubuntu 系统。

尝试:

sudo apt-get install graphviz

进而:

sudo apt-get install python-pygraphviz
于 2015-08-06T18:20:23.680 回答
0

我遇到了同样的错误,我希望这可以帮助那些仍在使用该软件包的人,尤其是在 Windows 中,只是做

dot -c

这基本上会为你配置点

于 2021-08-18T10:36:51.037 回答