2009-06-16 34 views
17

這就是情況。我工作的公司有很多現有的Tcl代碼,但其中一些想要開始使用python。很高興能夠重用一些現有的Tcl代碼,因爲這已經花了錢。此外,一些測試設備只有Tcl API。瞭解Python與Tcl接口的創造性方法嗎?

所以,我想到的其中一種方式是使用子進程模塊調用一些Tcl腳本。

  • 子過程是我最好的選擇嗎?
  • 有沒有人用過這段相當新的代碼:Plumage?如果是這樣,你的體驗(不僅僅是Tk)是什麼?
  • 任何其他可能的方式,我沒有考慮過?

回答

19

我希望你已經做好了準備。標準Python

import Tkinter 
tclsh = Tkinter.Tcl() 
tclsh.eval(""" 
    proc unknown args {puts "Hello World!"} 
    }"!dlroW olleH" stup{ sgra nwonknu corp 
""") 

編輯在回覆評論:Python的TCL解釋不知道其他安裝TCL組件。您可以通過以通常的方式向tcl python實際使用的擴展添加處理。下面是一些細節

0

我沒有用它自己,但SWIG可能會幫助你:

http://www.swig.org/Doc1.1/HTML/Tcl.html

+0

我認爲這是用於包裝C或C++代碼與高級語言的鏈接。 – 2009-06-17 02:13:07

+0

右:一個* *可以*用SWIG構建解決方案,但它不像「import Tkinter」或類似Typcl的項目那樣直接。 – 2011-11-11 23:51:06

3

這是可以做到。

http://wiki.tcl.tk/13312

Specificly看typcl擴展。

Typcl有點奇怪...這是一個擴展使用Tcl Python。 它並不真正需要CriTcl,並可能已在標準C.

此代碼演示了使用Tcl作爲共享庫已經完成,並掛接到它 在運行時(Tcl的存根架構使得這種興高采烈簡單)。 此外,Typcl儘可能避免字符串轉換(兩種方式)。

+0

有趣。我認爲這是Unix系統,而不是Windows? – 2009-06-17 02:12:18