我有一个基于Tcl的遗留应用程序,我打算为此编写一个python包装器。我的Tcl遗留应用程序附带了自己的Tcl解释器。它不使用系统提供的解释器。
我打算使用Tkinter.Tcl()来挂接Tcl解释器并使用eval执行Tcl指令。
但是Python的Tkinter正在调用系统上安装的默认Tcl解释器。如何指示Tkinter使用遗留应用程序附带的Tcl解释器???
PS:我对系统没有root权限,但我可以在本地工作区重建Python或Tcl或两者。
答案 0 :(得分:0)
所有与Tk库的链接都是通过Python的_tkinter.so
C扩展模块实现的。您可以尝试构建它,与您的库链接,但只有_tkinter.so
使用与所有用户使用的系统Python相同的选项构建时才能保证工作正常系统。最安全和最可靠的方法是构建自己的与您的Tcl / Tk链接的Python,并将其作为应用程序的一部分发布。让Python在非标准位置与Tcl / Tk链接可能有点棘手;修改Python顶级setup.py
中的detect_tkinter
方法可能最容易查找include
和lib
文件的所需位置。 (setup.py
控制Python标准库模块的构建,包括_tkinter.so
。)