tkinter TclError:无法找到包treectrl

时间:2015-05-27 14:07:21

标签: python-3.x tkinter tcl tk python-module

刚刚安装了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

关于我做错了什么的任何想法?

2 个答案:

答案 0 :(得分:2)

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

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

_tkinter.TclError: can't find package treectrl

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

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

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

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

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

也许从以下链接中,您可以查看treectrl版本8.5中是否包含Tk包:https://www.tcl.tk/man/tcl8.5/

同样,如果与我的版本不同,您可以为tcl/tk版本执行此操作。

我的猜测是,您需要先为treectrl发布版tcl/tk安装import "github.com/rdegges/ipify-api/api"

答案 1 :(得分:0)

在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/

那为我解决了这个问题。