La radice del problema è che il modulo Tkinter è chiamato Tkinter
(capitale "T") in Python 2 .x e tkinter
("t" minuscolo) in python 3.x.
per rendere il lavoro di codice sia in Python 2 e 3 si può fare qualcosa di simile:
try:
# for Python2
from Tkinter import *
except ImportError:
# for Python3
from tkinter import *
Tuttavia, PEP8 ha questo da dire circa le importazioni jolly:
Wildcard imports (from <module> import *) should be avoided
Nonostante innumerevoli tutorial che ignorano PEP8, il modo in cui PEP8 conforme importare sarebbe qualcosa di simile:
import tkinter as tk
Quando si importa in questo modo, è necessario prefixare tutti i comandi tkinter con tk.
(ad esempio: root = tk.Tk()
, ecc.). Questo renderà il tuo codice più facile da capire a scapito di un po 'più di digitazione. Dato che sia tkinter che ttk sono spesso usati insieme e importano classi con lo stesso nome, questa è una buona cosa. Come afferma lo Zen of python: "esplicito è meglio di implicito".
Nota: La parte as tk
è facoltativo, ma permette di fare un po 'meno di battitura: tk.Button(...)
vs tkinter.Button(...)
fonte
2012-07-23 21:55:12