La raíz del problema es que el módulo se llama Tkinter Tkinter
("T" mayúscula) en Python 2 .x y tkinter
(minúscula "t") en python 3.x.
Para que su código funcione tanto en Python 2 y 3 se puede hacer algo como esto:
try:
# for Python2
from Tkinter import *
except ImportError:
# for Python3
from tkinter import *
Sin embargo, PEP8 tiene esto que decir sobre las importaciones comodín:
Wildcard imports (from <module> import *) should be avoided
A pesar de innumerables tutoriales que ignoran PEP8, la forma de importar PEP8 sería algo como esto:
import tkinter as tk
Al importar de esta manera, debe marcar previamente todos los comandos de tkinter con tk.
(p. Ej .: root = tk.Tk()
, etc.). Esto hará que su código sea más fácil de entender a expensas de un poco más de tipeo. Dado que tanto tkinter como ttk a menudo se usan juntos e importan clases con el mismo nombre, esto es una buena cosa. Como dice Zen of python: "explícito es mejor que implícito".
Nota: La parte as tk
es opcional, pero le permite hacer un poco menos escribiendo: tk.Button(...)
vs tkinter.Button(...)