NameError:未定义名称'Tk

0 投票
3 回答
9510 浏览
提问于 2025-04-18 14:32

我第一次在我的电脑上尝试使用Tkinter,结果遇到了一个错误,标题上写着“NameError: name 'Tk' is not defined”,错误出现在“line root = Tk()”这一行。我一直没能让Tkinter正常工作。我现在使用的是macbook pro,Python版本是2.7.5。我已经尝试多次重新下载Python,但还是不行。

有没有人知道为什么它不工作?需要我提供更多信息吗?

提前谢谢大家!

#!/usr/bin/python

from Tkinter import *
root = Tk()
canvas = Canvas(root, width=300, height=200)
canvas.pack()
canvas.create_rectangle(  0,   0, 150, 150, fill="yellow")
canvas.create_rectangle(100,  50, 250, 100, fill="orange", width=5)
canvas.create_rectangle( 50, 100, 150, 200, fill="green", outline="red", width=3)
canvas.create_rectangle(125,  25, 175, 190, fill="purple", width=0)
root.mainloop()

3 个回答

0

你的代码是对的,但在导入代码的缩进上有问题。应该用两个空格,而不是一个空格。另外,尽量不要输入这个命令:

import tkinter

可以用这个代码:

from tkinter import  *
root = Tk()
canvas = Canvas(root, width=300, height=200)
canvas.pack()
canvas.create_rectangle(  0,   0, 150, 150, fill="yellow")
canvas.create_rectangle(100,  50, 250, 100, fill="orange", width=5)
canvas.create_rectangle( 50, 100, 150, 200, fill="green", outline="red", width=3)
canvas.create_rectangle(125,  25, 175, 190, fill="purple", width=0)
root.mainloop()

问题可能还出在你输入了“Tkinter”,其实应该输入“tkinter”,因为Python是区分大小写的。我觉得这样应该可以正常工作,对我来说是这样。

2

请确保你的Python文件名不是"tkinter.py",否则会出现这个错误。

3

你有一个其他的模块,它的名字叫“Tkinter”,这个名字把你真正想用的那个模块给覆盖了。你需要把它改个名字或者把它删掉。

import Tkinter
print Tkinter.__file__

撰写回答