2010-11-22 10 views
2

Ich erhalte den folgenden Fehler beim Ausführen einer python/tkinter GUI-Anwendung, die ich geschrieben habe._tkinter.TclError: ungültiger Befehlsname "labelframe"

Ich dachte, es könnte eine Tcl/Tk-Version Problem sein, aber der LabelFrame() Befehl wurde in Tcl/Tk 8.4 hinzugefügt (das ist die Version, die ich verwende).

Der andere Computer, den ich versuche, das Programm auszuführen, kann eine andere python/tkinter Anwendung ausführen, die ich schrieb - der Unterschied zwischen den Anwendungen ist, dass man das LabelFrame() Widget verwendet und das andere nicht.

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" 
+1

was ist die Ausgabe von 'import Tkinter; print Tkinter.TkVersion' – SingleNegationElimination

+0

Also mit dieser Methode der Versionsüberprüfung heißt es 8.3. Ich ging von: "Um zu überprüfen, starten Sie Tcl/Tk (in der Regel durch Ausführen von" Tclsh "oder" Wunsch "von einer Befehlszeile), und tippen Sie" info patchlevel ". Welches würde 8.4.15 ausgeben ... – thenickname

Antwort

2

Python kann eine eigene spezielle Version von TCL/TK verwenden, je nachdem, wie es gebaut und installiert wurde. Dies ist normalerweise bei Windows der Fall, manchmal bei Linux und selten bei MacOS X. Sie müssen sich auf die in Python angegebene Version verlassen, um zu wissen, welche Version sie verwendet.

Wenn Python die installierte Version nicht verwendet (wie es bei Ihnen der Fall ist), können Sie versuchen, Python zu aktualisieren. Wenn Sie auf Ihrer Linux-Distribution die Art und Weise, wie Python mit verfügbaren Paketen gebaut wurde, nicht überwinden können, müssen Sie Python aus der Quelle erstellen, um eine neuere Version von TCL/TK zu verwenden oder die installierte Version zu verwenden.

1

Es ist möglich, zwei verschiedene Versionen von Tcl/Tk erhalten berichteten diese beiden Methoden verwenden:

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 

Ein Update von Tcl/Tk es beheben sollte.

Verwandte Themen