2012-03-02 188 views
1

我需要在python程序(我有Ubuntu)中执行shell命令。更具体地说,我想在python脚本中使用graphviz创建图表。我的代码是python:os.system不执行shell命令

os.system("dot -Tpng graph.dot -o graph.png") 

它不工作,但在命令行,如果我只需键入“点-Tpng graph.dot -o graph.png”,那么一切都很好。你知道什么问题吗?谢谢!

编辑:不工作意味着没有任何反应,没有错误。从 “点-v -Tpng graph.dot -o graph.png”

dot - graphviz version 2.26.3 (20100126.1600) 

输出已激活插件库:libgvplugin_pango.so.6 使用的TextLayout:TextLayout的:开罗 激活插件库:libgvplugin_dot_layout .so.6 使用布局:点:dot_layout 使用渲染:开罗:开罗 使用设备:PNG:开罗:开罗 插件配置文件: /usr/lib中/ graphviz的/ config6 已成功加载。 渲染:开罗点无花果GD地图PS SVG tk的VML VRML XDOT 布局:圆环点FDP NEATO NOP NOP1 NOP2奥沙拼缝SFDP twopi TextLayout中:TextLayout中 装置:佳能CMAP cmapx cmapx_np点EPS图GD GD2 GIF GV IMAP imap_np ISMAP JPE JPEG JPG PDF纯的纯内线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

+3

小心详细说明“不起作用”是什么意思?请提供任何错误的完整追溯。 – 2012-03-02 23:25:00

+1

'os.system('/ usr/bin/which dot')'的输出是什么? – 2012-03-02 23:40:12

+0

@EmilioSilva/usr/bin/dot – ashim 2012-03-02 23:42:20

回答

2

我想通了这个问题。在执行命令之前,我应该关闭文件graph.dot。