【问题标题】:python: os.system does not execute shell commandpython:os.system不执行shell命令
【发布时间】: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


【解决方案1】:

我发现了问题所在。我应该在执行命令之前关闭文件 graph.dot。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-01-21
    • 2011-06-15
    • 2013-01-05
    • 2010-09-14
    • 2017-04-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多