tkinter.messagebox.showinfo no siempre funciona

Acabo de empezar a trabajar con la herramienta GUI tkinter de Python. En mi código, creo una GUI simple con un botón y quiero mostrarle al usuario un messagebox si hace clic en el botón.

Actualmente, utilizo el método tkinter.messagebox.showinfo para ello. Codifico en una computadora con Windows 7 usando IDLE. Si ejecuto el código de IDLE, todo funciona bien, pero si trato de ejecutarlo de forma independiente en el intérprete de Python 3, ya no funciona. En su lugar, registra este error en la consola:

 AttributeError:'module' object has no attribute 'messagebox' 

Tienes algun consejo para mi? Mi código es:

 import tkinter class simpleapp_tk(tkinter.Tk): def __init__(self,parent): tkinter.Tk.__init__(self,parent) self.parent = parent self.temp = False self.initialize() def initialize(self): self.geometry() self.geometry("500x250") self.bt = tkinter.Button(self,text="Bla",command=self.click) self.bt.place(x=5,y=5) def click(self): tkinter.messagebox.showinfo("blab","bla") if __name__ == "__main__": app = simpleapp_tk(None) app.title('my application') app.mainloop() 

messagebox filedialog , junto con algunos otros módulos como el filedialog , no se importa automáticamente al import tkinter . Importarlo explícitamente, utilizando as y / o from como se desee.

 >>> import tkinter >>> tkinter.messagebox.showinfo(message='hi') Traceback (most recent call last): File "", line 1, in  AttributeError: 'module' object has no attribute 'messagebox' >>> import tkinter.messagebox >>> tkinter.messagebox.showinfo(message='hi') 'ok' >>> from tkinter import messagebox >>> messagebox.showinfo(message='hi') 'ok' 

Esto es sensible a las mayúsculas y minúsculas: tkinter debe ser Tkinter dondequiera que se use. Hice esto y pude ejecutar tu ejemplo.