tkinter TclError:找不到包 treectrl

Posted

技术标签:

【中文标题】tkinter TclError:找不到包 treectrl【英文标题】:tkinter TclError: can't find package treectrl 【发布时间】:2015-08-09 16:26:11 【问题描述】:

如本教程所示,刚刚安装了 tktreectrl: https://www.youtube.com/watch?v=ddpYVA-7wq4 但是当我尝试运行我的程序时,我得到了这个错误。

Traceback (most recent call last):
File "E:/Python/Competition/Competition.py", line 36, in <module>
listbox = TkTreectrl.MultiListbox(window)
File "E:\Programs\Python\lib\site-packages\TkTreectrl\MultiListbox.py",line 50, in __init__
Treectrl.__init__(self, master, showroot=showroot, **kw)
File "E:\Programs\Python\lib\site-packages\TkTreectrl\Treectrl.py", line 489, in __init__
ver = master.tk.call('package', 'require', 'treectrl')
_tkinter.TclError: can't find package treectrl

关于我做错了什么有什么想法吗?

【问题讨论】:

【参考方案1】:

这可能不是一个详尽的答案,但它可能会有所帮助。

这可能是因为你的tcl/tk版本不包含一个名为treectrl的子包,来自以下错误:

_tkinter.TclError: can't find package treectrl

您为tkinter 使用TkTreectrl 的包装库在某处有这样的声明:

ver = master.tk.call('package', 'require', 'treectrl')

这意味着您正在尝试从tk 导入包treectrl,但显然该包不存在。我的建议是检查您的 tcl/tk 版本,然后检查它是否包含 treectrl

您可以使用以下命令(在 Python 3 上)检查您的 tcltk 版本:

>>> import tkinter
>>> tkinter.TkVersion
8.5
>>> tkinter.TclVersion
8.5
>>>

如果treectrl 包包含在Tk 8.5 版中,也许可以通过以下链接查看:https://www.tcl.tk/man/tcl8.5/

同样,如果您的 tcl/tk 版本与我的不同,您也可以这样做。

我的猜测是,您需要首先安装 treectrl,这可能是您的 tcl/tk 分发版的 extension。

【讨论】:

【参考方案2】:

在 LINUX 中安装 TkTreectrl 时出现此错误。 这个问题发生在 TCL 找不到 treectrl 包。 要解决此问题,您必须找到 TCL 正在寻找 treectrl 包的路径。 使用以下行创建一个名为 test.tcl 的 TCL 文件。

puts $tcl_pkgPath
puts $auto_path

在 LINUX 提示符下键入以下命令以运行代码并记下输出

tclsh test.tcl

在我的例子中,输出是

/usr/lib64/tcl8.6

我发现我的 treectrl2.4.1 目录在 /usr/lib 中,所以在 LINUX 提示符下,我输入了以下命令:

cd /usr/lib
cp -R treectrl2.4.1 /usr/lib64/tcl8.6/

这解决了我的问题。

【讨论】:

以上是关于tkinter TclError:找不到包 treectrl的主要内容,如果未能解决你的问题,请参考以下文章

cx_Freeze 应用程序找不到 tk.tcl

tkinter ttk 主题:_tkinter.TclError:不支持图像文件格式“svg”

tkinter.TclError:图像“pyimage3”不存在

tkinter.TclError:没有显示名称,也没有 $DISPLAY 环境变量 python

tkinter、python 和 seaborn 的问题:_tkinter.TclError: no display name and no $DISPLAY environment variable

使用 Tkinter 时,错误:TclError: image "pyimage8" doesn't exist