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 上)检查您的 tcl
和 tk
版本:
>>> 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的主要内容,如果未能解决你的问题,请参考以下文章
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