tkinter TclError: can't find package treectrl
tkinter TclError: can't find package treectrl
刚刚安装了 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
关于我做错了什么有什么想法吗?
这可能不是一个详尽的答案,但可能会有所帮助。
可能是因为你的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
>>>
也许可以从下面的 link 中检查 treectrl
软件包是否包含在 Tk
8.5 版中:https://www.tcl.tk/man/tcl8.5/
同样,如果您的 tcl/tk
版本与我的不同,您也可以这样做。
我的猜测是您需要先安装 treectrl
,这可能是 extension 用于您的 tcl/tk
发行版。
我在 LINUX 中安装 TkTreetrl 时遇到此错误。
这个问题发生在 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/
这解决了我的问题。
刚刚安装了 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
关于我做错了什么有什么想法吗?
这可能不是一个详尽的答案,但可能会有所帮助。
可能是因为你的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
>>>
也许可以从下面的 link 中检查 treectrl
软件包是否包含在 Tk
8.5 版中:https://www.tcl.tk/man/tcl8.5/
同样,如果您的 tcl/tk
版本与我的不同,您也可以这样做。
我的猜测是您需要先安装 treectrl
,这可能是 extension 用于您的 tcl/tk
发行版。
我在 LINUX 中安装 TkTreetrl 时遇到此错误。 这个问题发生在 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/
这解决了我的问题。