Tkinter fehlermeldung

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
Boggel
User
Beiträge: 23
Registriert: Samstag 15. Dezember 2018, 12:56

Hallo,

ich habe jetzt mit dem Modul tkinter angefangen.
Wenn ich ein einfaches Fenster erstellen will dessen Code so lautet:

Code: Alles auswählen

from tkinter import *

root = Tk()

w = Label(root, text="Hello World")
w.pack()

root.mainloop()
Kommt die Fehlermeldung:
Traceback (most recent call last):
File "E:\Python\tkinter.py", line 1, in <module>
from tkinter import *
File "E:\Python\tkinter.py", line 3, in <module>
root = Tk()
NameError: name 'Tk' is not defined

Ich Vermute das das an Python 3 liegt, was ich benutze, weiß aber nicht wie ich das beheben soll.

Mfg Boggel
bb1898
User
Beiträge: 216
Registriert: Mittwoch 12. Juli 2006, 14:28

Nein, mit Python 3 hat das nichts zu tun. Die Fehlermeldung sagt es schon: Du hast Dein Programm offensichtlich unter dem Namen "tkinter.py" gespeichert - und verdeckst damit das tkinter-Modul der Standardbibliothek, das Du ja aber brauchst. Also: benenne Dein Programm anders, dann sollte es gehen.

Im übrigen ist Deine Form des Imports aber auch gar nicht empfehlenswert, da lauern jede Menge Namenskonflikte. Besser, und immer noch nicht gar zu viel Extra-Schreibarbeit:

Code: Alles auswählen

import tkinter as tk

root = tk.Tk()
...
und so weiter, alle Namen aus tkinter mit Präfix tk. versehen. Du siehst dann auch besser, was ein Original-tkinter-Objekt ist und was von Dir stammt - und zwar auch noch in ein paar Monaten und in einem langen Programm.
Boggel
User
Beiträge: 23
Registriert: Samstag 15. Dezember 2018, 12:56

Danke für die Verbesserungsvorschläge. Jetzt funktioniert alles wieder.
Antworten