问题的根源是Tkinter模块Tkinter
在python 2.x中被命名为(大写“ T”),tkinter
在python 3.x中被命名为(小写“ t”)。
为了使您的代码在Python 2和3中都能正常工作,您可以执行以下操作:
try:
# for Python2
from Tkinter import *
except ImportError:
# for python3
from tkinter import *
应避免通配符导入(来自
尽管有无数的教程忽略了PEP8,但兼容PEP8的导入方式如下所示:
import tkinter as tk
以这种方式导入时,您需要为所有tkinter命令加上前缀tk.
(例如:root = tk.Tk()
等)。这将使您的代码更易于理解,但要付出一点点输入。鉴于tkinter和ttk经常一起使用,并且导入名称相同的类,这是一件好事。正如python的禅宗所言:“显式优于隐式”。
注意:该as tk
部分是可选的,但可以让您少打字:tk.Button(...)
vstkinter.Button(...)