Python3.9.6下VS Code运行tkinter代码报Tk未定义错误求解
Tkinter运行故障解决方案
故障原因
你创建的代码文件命名为tkinter.py,与Python标准库的tkinter模块重名。导入tkinter时,Python解释器会优先加载当前目录下的本地tkinter.py文件,而非标准库的tkinter模块,你的本地文件内没有定义Tk类,因此触发NameError: name Tk is not defined报错,此前出现的no module named tkinter.__main__报错也属于同一重名冲突导致的问题。
你执行python3 -m tkinter可正常弹出窗口,说明标准库tkinter本身安装正常,无需重装。
解决方案
- 重命名你的代码文件:将
tkinter.py修改为不与Python标准库重名的名称,例如tk_hello.py、first_gui.py均可,日常开发中不要使用Python内置模块、标准库的名称作为自定义文件、变量、函数的命名。 - 清理残留缓存:如果重命名后仍报错,删除代码同级目录下的
__pycache__文件夹(或文件夹内和原tkinter.py相关的缓存文件),避免旧缓存影响运行。 - 重新运行代码:切换到文件所在目录,执行
python3 改后的文件名.py即可正常启动GUI程序。
内容的提问来源于stack exchange,提问作者Paulth3great
相关产品推荐
相关产品推荐

