在 Python 中导入 Tkinter 时出现 ImportError [重复]
- 2025-04-10 09:45:00
- admin 原创
- 100
问题描述:
我正在尝试使用带有标准库 Tkinter 的 Python 3.2 测试 GUI 代码,但无法导入该库。
这是我的测试代码:
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
解决方案 1:
问题的根源在于 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对通配符导入有这样的说法:
应避免使用通配符导入( from <module> import * )
尽管无数教程都忽略了 PEP8,但符合 PEP8 的导入方式应该是这样的:
import tkinter as tk
以这种方式导入时,您需要在所有 tkinter 命令前加上前缀tk.
(例如:root = tk.Tk()
等)。这将使您的代码更容易理解,但需要多输入一点代码。考虑到 tkinter 和 ttk 经常一起使用并导入同名的类,这是一件好事。正如Python 之禅所述:“显式优于隐式”。
注意:此as tk
部分是可选的,但可以让您减少一些输入:tk.Button(...)
vstkinter.Button(...)
解决方案 2:
在 3.x 中,该模块被称为tkinter
,而不是。Tkinter
解决方案 3:
对于 3.x,使用Tkinter
as (小写)重写代码如下:tkinter
from tkinter import *
root = Tk()
w = Label(root, text="Hello, world!")
w.pack()
root.mainloop()
相关推荐
热门文章
项目管理软件有哪些?
热门标签
曾咪二维码
扫码咨询,免费领取项目管理大礼包!
云禅道AD