仅安装了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
版本不包含名为tcl/tk
的子程序包:
treectrl
您正在将_tkinter.TclError: can't find package treectrl
用于TkTreectrl
的包装库在某处有此语句:
tkinter
这意味着您正在尝试从ver = master.tk.call('package', 'require', 'treectrl')
导入软件包treectrl
,但显然该软件包不存在。我的建议是签出您的tk
版本,然后检查它是否包含tcl/tk
。
您可以使用以下命令(在Python 3上,检查treectrl
和tcl
版本:]
tk
也许可以通过以下链接检查>>> import tkinter
>>> tkinter.TkVersion
8.5
>>> tkinter.TclVersion
8.5
>>>
8.5版中是否包含treectrl
软件包:Tk
类似地,如果您的https://www.tcl.tk/man/tcl8.5/版本与我的版本不同,也可以使用。
我的猜测是,您首先需要安装tcl/tk
,对于您的treectrl
发行版可能是extension。
在LINUX中安装TkTreectrl时出现此错误。发生此问题,TCL找不到treectrl程序包。要解决此问题,您必须找到TCL正在寻找treectrl软件包的路径。用以下几行创建一个名为test.tcl的TCL文件。
tcl/tk
在LINUX提示符下键入以下命令以运行代码并记下输出
puts $tcl_pkgPath
puts $auto_path
就我而言,输出为
tclsh test.tcl
我发现我的treectrl2.4.1目录位于/ usr / lib中,因此从LINUX提示符下输入了以下命令:
/usr/lib64/tcl8.6
这为我解决了这个问题。