Python 3.11中Tkinter创建GUI窗口报错问题求助
解决Python 3.11中Tkinter初始化报错问题
问题回顾
之前在Windows 11+Python 3.10环境下使用Tkinter正常,更换系统并安装Python 3.11后,出现两类报错:
- 执行
import tkinter; win = Tk()时,报NameError: name 'Tk' is not defined - 调整代码后,报
AttributeError: partially initialized module 'tkinter' has no attribute 'Tk' (most likely due to a circular import)
解决步骤
修正导入与调用方式
直接import tkinter后,Tk是tkinter模块的内部类,不能直接调用,需用两种方式之一:
方式1:单独导入Tk类from tkinter import Tk win = Tk() win.mainloop()方式2:给模块起别名,通过别名调用
import tkinter as tk win = tk.Tk() win.mainloop()排查脚本命名冲突
不要将自己的Python脚本命名为tkinter.py,否则会覆盖系统自带的tkinter模块,引发循环导入错误。如果有重名文件,立即改名,并删除同目录下的__pycache__文件夹。确认Python安装完整性
检查Python 3.11安装时是否勾选了tcl/tk and IDLE组件。若未勾选,重新运行Python安装程序,选择「Modify」,确保该组件被选中并完成安装。
内容的提问来源于stack exchange,提问作者Parsa Ad
相关产品推荐
相关产品推荐

