Seite 1 von 1

ImportError: No module named Tkinter

Verfasst: Sonntag 13. November 2011, 15:19
von kay2011
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 !

Re: ImportError: No module named Tkinter

Verfasst: Freitag 2. September 2016, 23:26
von pymaster
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]