_tkinter.TclError: неверное имя команды "labelframe" - PullRequest
2 голосов
/ 22 ноября 2010

Я получаю следующую ошибку при запуске написанного мной python/tkinter приложения с графическим интерфейсом.

Я думал, что это может быть проблемой с версией Tcl / Tk, но в Tcl / была добавлена ​​команда LabelFrame()Tk 8.4, (которая является версией, которую я использую).

Другой компьютер, на котором я пытаюсь выполнить программу, может запустить другое приложение 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 ]

2 голосов
/ 23 ноября 2010

python может использовать собственную специальную версию TCL / TK, в зависимости от того, как он был собран и установлен.Обычно это происходит в Windows, иногда в Linux, и редко в MacOS X. Вы должны полагаться на версию, указанную внутри python, чтобы знать, какую версию он использует.

Если python не использует установленную версию (как в случае с вами), вы можете попробовать обновить python.Если в вашем дистрибутиве Linux вы не можете преодолеть то, как Python был собран с использованием доступных пакетов, вам придется собирать Python из исходного кода, чтобы использовать более новую версию TCL / TK или использовать установленную версию.

1 голос
/ 23 ноября 2010

Можно получить две разные версии 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 должно исправить это.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...