18

これが状況です。私が働いている会社にはかなりの数の既存のTclコードがありますが、そのうちのいくつかはPythonの使用を開始したいと考えています。既存のTclコードの一部を再利用できると便利です。これは、すでにお金が使われているためです。さらに、一部のテスト機器にはTclAPIしかありません。

したがって、私が考えた方法の1つは、サブプロセスモジュールを使用していくつかのTclスクリプトを呼び出すことでした。

  • サブプロセスは私の最善の策ですか?
  • 誰かがこのかなり新しいコードを使用しましたか:Plumage?もしそうなら、あなたの経験は何ですか(Tkだけでなく)?
  • 私が考慮していない他の可能な方法はありますか?
4

3 に答える 3

19

私はあなたがこれの準備ができていることを望みます。標準のPython

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

Reで編集してコメント:Pythonのtclインタープリターは、インストールされている他のtclコンポーネントを認識しません。Pythonが実際に使用するtclに通常の方法で拡張機能を追加することで、これに対処できます。ここにいくつかの詳細のリンクがあります

于 2009-06-17T00:10:03.320 に答える
3

これを行うことができます。

http://wiki.tcl.tk/13312

具体的には、typcl拡張機能を見てください。

Typclは少し奇妙です...これはPythonのTclを使用するための拡張機能です。それは実際にはCriTclを必要とせず、標準Cで実行できたはずです。

このコードは、共有ライブラリとしてTclを使用し、実行時にそれにフックすることを示しています(Tclのスタブアーキテクチャにより、これは非常にシンプルになります)。さらに、Typclは可能な限り文字列変換を回避します(両方の方法)。

于 2009-06-16T23:55:02.383 に答える
0

私はそれを自分で使用したことはありませんが、SWIGがあなたを助けるかもしれません:

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

于 2009-06-16T23:50:04.237 に答える