如何使Tkinter使用任何给定的Tcl解释器,其他系统范围的Tcl解释器

时间:2013-07-03 20:07:17

标签: python tkinter tcl tk

我有一个基于Tcl的遗留应用程序,我打算为此编写一个python包装器。我的Tcl遗留应用程序附带了自己的Tcl解释器。它不使用系统提供的解释器。

我打算使用Tkinter.Tcl()来挂接Tcl解释器并使用eval执行Tcl指令。

但是Python的Tkinter正在调用系统上安装的默认Tcl解释器。如何指示Tkinter使用遗留应用程序附带的Tcl解释器???

PS:我对系统没有root权限,但我可以在本地工作区重建Python或Tcl或两者。

1 个答案:

答案 0 :(得分:0)

所有与Tk库的链接都是通过Python的_tkinter.so C扩展模块实现的。您可以尝试构建它,与您的库链接,但只有_tkinter.so使用与所有用户使用的系统Python相同的选项构建时才能保证工作正常系统。最安全和最可靠的方法是构建自己的与您的Tcl / Tk链接的Python,并将其作为应用程序的一部分发布。让Python在非标准位置与Tcl / Tk链接可能有点棘手;修改Python顶级setup.py中的detect_tkinter方法可能最容易查找includelib文件的所需位置。 (setup.py控制Python标准库模块的构建,包括_tkinter.so。)