1

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

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

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

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

4

1 回答 1

0

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

于 2013-07-04T05:57:09.000 回答