【发布时间】:2012-03-21 10:58:57
【问题描述】:
我需要在 python 程序中执行 shell 命令(我有 ubuntu)。更具体地说,我想在 python 脚本中使用 graphviz 创建图形。我的代码是
os.system("dot -Tpng graph.dot -o graph.png")
它不起作用,但如果我只是在命令行中输入“dot -Tpng graph.dot -o graph.png”,那么一切都很好。你知道什么问题吗?谢谢!
Edit: doesn't work 意味着什么都没有发生,没有错误。
“dot -v -Tpng graph.dot -o graph.png”的输出
dot - graphviz version 2.26.3 (20100126.1600)
激活的插件库:libgvplugin_pango.so.6 使用 textlayout: textlayout:cairo 激活的插件库:libgvplugin_dot_layout.so.6 使用布局:dot:dot_layout 使用渲染:cairo:cairo 使用设备:png:cairo:cairo 插件配置文件: /usr/lib/graphviz/config6 已成功加载。 渲染:开罗点图 gd 地图 ps svg tk vml vrml xdot 布局:circo dot fdpneato nop nop1 nop2 osage patchwork sfdp twopi 文本布局:文本布局 设备:佳能 cmap cmapx cmapx_np dot eps fig gd gd2 gif gv imap imap_np ismap jpe jpeg jpg pdf plain plain-ext png ps ps2 svg svgz tk vml vmlz vrml wbmp x11 xdot xlib loadimage : (lib) eps gd gd2 gif jpe jpeg jpg png ps svg
【问题讨论】:
-
想详细说明“它不起作用”是什么意思?请提供任何错误的完整追溯。
-
os.system('/usr/bin/which dot')的输出是什么? -
然后
dot在你的路径上,现在试试os.system('dot -v -Tpng graph.dot -o graph.png')(也就是说,使用-v表示详细)。 -
@EmilioSilva 它不会创建文件 graph.png (如果我在终端输入这个命令然后它会创建 graph.png)
-
@capoluca,
-v选项是看dot是否给出了一些关于它为什么不创建它的解释。
标签: python shell ubuntu graphviz