在命令提示符下编程Python时出现“name 'Tk' is not defined”,在IDLE中正常工作
这是一个刚开始学习Tkinter的初学者提的问题。我下载了Tkinter,并写了一个教程中的Hello World
程序,在IDLE里运行得很好。不过,当我保存程序并通过命令提示符运行时,出现了NameError: name 'tk' is not defined.
的错误。我还尝试在主Python命令程序里手动输入代码,结果也能正常运行。
只有在通过命令提示符运行或者双击时,Tk()
才会识别不了。
我完全不知道这是什么情况。
代码就是所有教程教你写的基本Hello World
程序:
from Tkinter import *
root = Tk()
w = Label(root, text="Hello World")
w.pack()
root.mainloop()
另外,因为我知道大家可能会问,所以我想说明一下,我不是在用3.x版本,并且我尝试过把程序叫做"tkinter",但它就是找不到这个模块。
显然这个程序在其他人的电脑上可以正常工作,所以问题不在代码本身。有没有人知道这可能是什么原因呢?
11 个回答
5
我想这可能跟以下几点有关:
- 你使用的Python版本
- 你是怎么导入这个库的
如果你使用的是 python 2.x
,可以用这个:
from Tkinter import *
root = Tk()
root.mainloop()
或者
from tkinter import *
root = tkinter()
root = mainloop()
7
在我电脑上运行得很好。
因为你说了:NameError: name 'tk' is not defined。
这里的'tk'是小写的't'
你可能写成了:
root = tk()
而不是:
root = Tk()
检查一下大写的'T'
13
我找到的解决办法是,不要把你的文件命名为 tkinter。