Python tkinter运行报NameError: name 'tk' is not defined错误原因咨询
报错原因
该错误和tkinter是否安装无关,是导入方式和调用方式不匹配导致的:
你当前用的导入语句是from tkinter import *,这种导入逻辑是把tkinter模块下的所有内置类、方法直接导入到当前代码的命名空间,不会引入tk这个模块别名,所以后续代码里写tk.Tk()、tk.Canvas的时候,解释器找不到tk这个名称,就会抛出NameError。
两种修复方案
- 方案1:保留现有导入写法,去掉调用时的
tk.前缀
修改后可直接运行的代码如下:
from tkinter import * root = Tk() canvas = Canvas(root, width=600, height=500) canvas.pack() root.mainloop()
- 方案2:保留
tk.前缀的调用写法,修改导入语句
把导入逻辑改成给tkinter设置别名tk的形式,和你的调用写法匹配:
import tkinter as tk root = tk.Tk() canvas = tk.Canvas(root, width=600, height=500) canvas.pack() root.mainloop()
内容的提问来源于stack exchange,提问作者Dolphin
相关产品推荐
相关产品推荐

