_tkinter.TclError:无效的命令名称“labelframe”

时间:2010-11-22 20:52:45

标签: python tkinter tcl

运行我编写的python/tkinter GUI应用程序时出现以下错误。

我认为它可能是Tcl / Tk版本问题,但{T} / Tk 8.4中添加了LabelFrame()命令(这是我正在使用的版本)。

我尝试执行该程序的另一台计算机能够运行我写的另一个python/tkinter应用程序 - 应用程序之间的区别在于,一个使用LabelFrame()小部件,另一个使用不

Traceback (most recent call last):
  File "/home/nharris/python/isub_parser/isub.py", line 672, in <module>
    timeFrame = LabelFrame(optFrame, text="Time Scale Options")
  File "/usr/apps/Python/python2.6.1-rhel3-i686/lib/python2.6/lib-tk/Tkinter.py", line 3525, in __init__
    Widget.__init__(self, master, 'labelframe', cnf, kw)
  File "/usr/apps/Python/python2.6.1-rhel3-i686/lib/python2.6/lib-tk/Tkinter.py", line 1932, in __init__
    (widgetName, self._w) + extra + self._options(cnf))
_tkinter.TclError: invalid command name "labelframe"

2 个答案:

答案 0 :(得分:2)

python可能正在使用自己特殊版本的TCL / TK,具体取决于它的构建和安装方式。这通常是在Windows上的情况,有时在Linux上是这种情况,在MacOS X上很少出现这种情况。您必须依赖python中报告的版本才能知道它使用的是什么版本。

如果python没有使用已安装的版本(正如您遇到的那样),您可以尝试更新python。如果在你的Linux发行版中,你无法克服使用可用包构建python的方式,你将不得不从源代码构建python以使用更新版本的TCL / TK或使用已安装的版本。

答案 1 :(得分:1)

使用这两种方法报告可以获得两种不同版本的Tcl / Tk:

Method 1:
>tclsh
%info patchlevel
8.4.15

Method 2:
>python
>>>import Tkinter;print Tkinter.TkVersion
8.3

Key: 
> default command line
>>> python command line
% tcl command line

Tcl / Tk的更新应该修复它。