刚从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”,它根本找不到该模块。
显然这个程序适用于其他人的计算机,所以这不是代码本身的问题。有谁知道可能导致这个问题的原因是什么?
答案 0 :(得分:4)
在我的电脑上工作正常。
因为您说:NameError:名称'tk'未定义。
这里有一个小't'
你可能写过
root = tk()
而不是:
root = Tk()
检查资本'T'
答案 1 :(得分:3)
我想这与
有关 python 2.x
使用此
from Tkinter import *
root = Tk()
root.mainloop()
OR
from tkinter import *
root = tkinter()
root = mainloop()
答案 2 :(得分:3)
我发现的解决方案是不提供文件tkinter的名称。
答案 3 :(得分:1)
Python使用不同的版本进行分发,其中一些包括Tkinter和一些不要。
您所描述的是在您的系统上拥有多个Python的症状。当您运行IDLE时,显然您已经安装了Tkinter。在命令行可用的那个显然不是。确认这一点的一种方法是尝试从命令行启动IDLE:python -m idlelib.idle
。如果IDLE没有启动,则不会安装Tkinter,您需要找到成功运行IDLE的版本的路径。
答案 4 :(得分:1)
我遇到了同样的问题,在我改变这个问题之前找不到任何解决方案:
from Tkinter import *
为:
from tkinter import *
我不知道大写的T适用于其他,但在Windows 64位Python 3.4.1下,它应该是“tkinter”
答案 5 :(得分:1)
正确的程序如下-
from tkinter import *
root = Tk()
myLabel = Label(root, text="Hello")
myLabel.pack()
root.mainloop()
我相信您使用的是python 3或更高版本,错误为NameError: name 'tk' is not defined
,错误消息为root = tk()
。
请将其更改为root = Tk()
,您会很方便。
谢谢
答案 6 :(得分:0)
Python 2.x
使用:
from Tkinter import * as tk
import Tkinter as tk
root = Tk()
Python 3
使用:
from tkinter import * as tk
import tkinter as tk
root = tk.Tk()
答案 7 :(得分:0)
还要检查您的文件名 如果您之前创建过tkinter.py,那么它也可能导致相同的问题。它会先导入
答案 8 :(得分:-1)
认为这对“tk not defined”
有帮助from tkinter import *
import tkinter.tkFileDialog
root = tkinter.Tk('Anything you want is displayed')
答案 9 :(得分:-1)
这将在Python 3上很好地发挥作用
from Tkinter import *
import Tkinter as tk
window = tk.Tk()
window.title("Welcome to LikeGeeks app")
window.mainloop()
答案 10 :(得分:-2)
root = Tk()
使用小写字母t导入并在TK中使用大写字母T
这对我有用