此问题已在此处有答案:
Difference between tkinter and Tkinter(7个回答)
6天前关闭。
我正在尝试使用Python 3测试GUI代码。2与标准库Tkinter,但我不能导入库。
这是我的测试代码:
from Tkinter import *
root = Tk()
w = Label(root, text="Hello, world!")
w.pack()
root.mainloop()
shell报告此错误:
Traceback (most recent call last):
File "<pyshell#9>", line 1, in <module>
from Tkinter import *
ImportError: No module named Tkinter
3条答案
按热度按时间ccrfmcuu1#
问题的根源是Tkinter模块在python 2中被命名为
Tkinter
(大写“T”)。x和tkinter
(小写“t”)。x.为了让你的代码在Python 2和Python 3中都能工作,你可以这样做:
然而,PEP8对通配符导入有以下说法:
应避免通配符导入(从import *)
尽管有无数的教程忽略了PEP8,但符合PEP8的导入方式如下所示:
以这种方式导入时,您需要在所有tkinter命令前面加上
tk.
(例如:root = tk.Tk()
等)。这将使您的代码更容易理解,而代价是多输入一点点。考虑到tkinter和ttk经常一起使用,并且导入同名的类,这是一件好事。如Zen of python所述:“显性比隐性好”。注意:
as tk
部分是可选的,但可以让你少输入一些:tk.Button(...)
与tkinter.Button(...)
o3imoua42#
在3中,该模块被称为
tkinter
,而不是Tkinter
。x.tzcvj98z3#
将
Tkinter
重写为tkinter
(小写),得到3。x: