ImportError al importar Tkinter en Python

Estoy intentando probar el código GUI utilizando Python 3.2 con la biblioteca estándar Tkinter pero no puedo importar la biblioteca.

Este es mi código de prueba:

from Tkinter import * root = Tk() w = Label(root, text="Hello, world!") w.pack() root.mainloop() 

El shell informa de este error:

 Traceback (most recent call last): File "", line 1, in  from Tkinter import * ImportError: No module named Tkinter 

La raíz del problema es que el módulo Tkinter se llama Tkinter (mayúscula “T”) en python 2.x, y tkinter (minúscula “t”) en python 3.x.

Para hacer que tu código funcione en Python 2 y 3 puedes hacer algo como esto:

 try: # for Python2 from Tkinter import * except ImportError: # for Python3 from tkinter import * 

Sin embargo, PEP8 tiene esto que decir acerca de las importaciones de comodines:

Se deben evitar las importaciones de comodines (de import *)

A pesar de los innumerables tutoriales que ignoran PEP8, la forma de importar compatible con PEP8 sería algo como esto:

 import tkinter as tk 

Al importar de esta manera, debe prefijar todos los comandos tkinter con tk. (por ejemplo: root = tk.Tk() , etc). Esto hará que su código sea más fácil de entender a costa de un poquito más de escritura. Dado que tkinter y ttk a menudo se usan juntos e importan clases con el mismo nombre, esto es algo bueno. Como afirma el zen de python : “explícito es mejor que implícito”.

Nota: la parte as tk es opcional, pero le permite escribir un poco menos: tk.Button(...) vs tkinter.Button(...)

El módulo se llama tkinter , no Tkinter , en 3.x.

Reescriba el código de la siguiente manera con Tkinter como tkinter (en minúsculas) para 3.x:

 from tkinter import * root = Tk() w = Label(root, text="Hello, world!") w.pack() root.mainloop()