如何在 Tkinter 库中指定 tcl 编译器?

How to specify tcl compiler in Tkinter library?

我正在尝试在 python 中编译 tcl 脚本并使用 tkinter 库,但是有些 tcl 库不在标准 tcl 库中,有没有办法在 tkinter 或在 tkinter 中安装新的 tcl 包?

我没有找到任何与此类似的问题,因此我没有找到任何类似的解决方案。

举个例子,我试图在 tcl 中使用 tclvisa 库,它不是标准库。

import tkinter

tclsh = tkinter.Tcl()

tclsh.eval("package require tclvisa")

以上代码产生以下错误

Traceback (most recent call last):
File "test.py", line 5, in <module>
tclsh.eval("package require tclvisa")
_tkinter.TclError: can't find package tclvisa

解决方案:

将 tcl 库放在 python/tcl 中,它对我有用

Tcl 全局变量 auto_path 包含要在其中查找包的目录的 Tcl 列表。使用 lappend 添加一个目录到它,因为您可能不想删除中的现有条目它:

tclsh.eval("lappend auto_path /path/to/add")
tclsh.eval("package require tclvisa")

您还可以通过在加载 Tkinter 包之前设置 TCLLIBPATH environment variable 来控制它。假设 Tkinter 不会干扰它本身……