2013-10-08 16 views
1

我想從python運行一個TCL腳本。在我正在使用的一些軟件中嵌入了一個非常具體的TCL軟件包,我需要告訴Python解釋器(或TKinter?)這個軟件包的位置。這是我到目前爲止所嘗試過的。Python中的TCL:找不到包

>>> import Tkinter 
>>> r = Tkinter.Tk() 
>>> r.tk.eval('lappend auto_path C:/Program Files (x86)/Ixia/IxNetwork/7.0-EA/tcl8.4/bin') 
>>> r.tk.eval('lappend auto_path C:\\Program Files (x86)\\Ixia\\IxNetwork\7.0-EA\\tcl8.4\\bin\\') 
'{C:\\Python26\\tcl\\tcl8.5} C:/Python26/tcl C:/lib {C:\\Python26\\tcl\\tk8.5} {C:\\Python26\\tcl\\tk8.5/ttk} C:/Program Files (x86)/Ixia/IxNetwork/7.0-EA/tcl8.4/bin C:Program Files (x86)IxiaIxNetwork\x07.0-EA\\tcl8.4\x08in\\\\' 

我想用這是我從窗口複製以下TCL shell啓動菜單:

"C:\Program Files (x86)\Ixia\IxOS\6.40-EA\TclScripts\bin\wish84.exe" "C:\Program Files (x86)\Ixia\IxOS\6.40-EA\TclScripts\bin\IxiaWish.tcl" 

首先,誰能告訴我,爲什麼有兩個項目在開始菜單快捷方式被稱爲目標?我能在Python中訪問我的TCL嗎?你可以從上面看到,我已經嘗試將這個包附加到auto_path,但是有字符問題。有誰知道爲什麼這些角色混在一起?

+1

just ['source'](http://www.tcl.tk/man/tcl8.6/TclCmd/source.htm)它。 –

回答

2

我不明白你要完成什麼。如果你想要做的就是執行以下命令:

"C:\Program Files (x86)\Ixia\IxOS\6.40-EA\TclScripts\bin\wish84.exe" "C:\Program Files (x86)\Ixia\IxOS\6.40-EA\TclScripts\bin\IxiaWish.tcl" 

那爲什麼不使用subprocess?沿着這條線:

import subprocess 
command = [ 
    r'C:\Program Files (x86)\Ixia\IxOS\6.40-EA\TclScripts\bin\wish84.exe', 
    r'C:\Program Files (x86)\Ixia\IxOS\6.40-EA\TclScripts\bin\IxiaWish.tcl' 
] 
p = subprocess.Popen(commands, 
     shell=True, 
     stdout=subprocess.PIPE, 
     stderr=subprocess.PIPE) 
stdout, stderr = p.communicate()