2012-03-02 187 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。