ImportError: No module named Tkinter

Fragen zu Tkinter.
Antworten
kay2011
User
Beiträge: 4
Registriert: Sonntag 13. November 2011, 15:13

Hallo liebe Python Freunde,

ich habe als Entwicklungsumgebung Eclipse und darin PyDev installiert:
Auch ist Pydev als Compiler eingestellt.

Wenn ich jedoch folgendes Beispiel starte:

Code: Alles auswählen

import Tkinter

def hauptteil():

        fenster = Tkinter.Tk()

        rahmen = Tkinter.Frame()

        rahmen.pack()

        text = Tkinter.Label(rahmen, text='Siehe da, ein Fenster!')

        text.pack()
        
        fenster = hauptteil()

fenster.mainloop()
kommt als Fehlermdelung folgendes zurück:

Code: Alles auswählen

Traceback (most recent call last):
  File "C:\Users\usera\workspace\Testpaket2\tkintertestpaket1\__init__.py", line 1, in <module>
    import Tkinter
ImportError: No module named Tkinter
Ziel wäre ein kleines Fenster Mithilfe von tkinter.

Woran liegts ?
Vielen Dank für Eure Hilfe.

Edit nach google:

Tkinter ist ab Python 3 als tkinter zu schreiben:

nach Abänderung in:

Code: Alles auswählen

import tkinter

def hauptteil():

        fenster = tkinter.Tk()

        rahmen = tkinter.Frame()

        rahmen.pack()

        text = tkinter.Label(rahmen, text='Siehe da, ein Fenster!')

        text.pack()
       
        fenster = hauptteil()

fenster.mainloop()
bekommt ich nun "nur" noch ein simples: NameError: name 'fenster' is not defined

Lösung dank google http://www.python-forum.de/viewtopic.php?f=18&t=27562 gefunden !
pymaster
User
Beiträge: 1
Registriert: Freitag 2. September 2016, 23:05

dein problem ist ein indent block in der du das object fenster erstellst
außer dem versuchst du ein objekt von einer Funktion zu erschaffen
es gibt zwei möglich keiten dich zu korrigieren (ich glaube du bist bei zahl reichen quellen gewesen oder ;))
die Prozeduale möglichkeit (näher an deinem skript):

Code: Alles auswählen

import tkinter
fenster = tkinter.Tk()
def hauptteil():
        rahmen = tkinter.Frame()
        rahmen.pack()
        text = tkinter.Label(rahmen, text='Siehe da, ein Fenster!')
        text.pack()
       
hauptteil()
fenster.mainloop()
die OO (ObjecktOrientierte) version:
[codebox=python file=Unbenannt.txt]import tkinter
root = tkinter.Tk()
class hauptteil():
def __init__(self):
rahmen = tkinter.Frame()
text = tkinter.Label(rahmen, text='Siehe da, ein Fenster!')
text.pack()
rahmen.pack()

fenster = hauptteil()
root.mainloop()[/code]
Antworten