有没有创造性的方法将Python与Tcl连接?
情况是这样的。我所在的公司有很多现成的Tcl代码,但有些人想开始使用Python。能够重用一些现有的Tcl代码会很好,因为这些代码已经花了钱。此外,有些测试设备只有Tcl的接口。
所以,我想到的一种方法是使用subprocess模块来调用一些Tcl脚本。
- 使用subprocess模块是最好的选择吗?
- 有没有人使用过这个比较新的工具:Plumage? 如果有,你的体验如何(不仅仅是针对Tk)?
- 还有其他我没有考虑到的可能方法吗?
3 个回答
0
我自己没用过,但SWIG可能对你有帮助:
3
这件事是可以做到的。
特别要关注一下 typcl 这个扩展。
Typcl 有点奇怪……它是一个让你可以在 Python 中使用 Tcl 的扩展。
其实它并不需要 CriTcl,也可以用标准的 C 语言来实现。
这段代码展示了如何把 Tcl 当作共享库来使用,并在运行时连接到它(Tcl 的 stubs 架构让这变得非常简单)。
此外,Typcl 尽量避免字符串转换(无论是从 Python 到 Tcl 还是反过来)。
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添加扩展来解决这个问题。这里有一个链接,里面有一些详细信息: