刚从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”,它根本找不到该模块。
显然这个程序适用于其他人的计算机,所以这不是代码本身的问题。有谁知道可能导致这个问题的原因是什么?
在我的电脑上正常工作。
既然你说:NameError:名字'tk'没有定义。
这里带小't'
你可能写过
root = tk()
代替 :
root = Tk()
检查资本'T'
我想这与此有关
对于python 2.x
使用此
from Tkinter import *
root = Tk()
root.mainloop()
要么
from tkinter import *
root = tkinter()
root = mainloop()
Python分布在不同的构建中,其中一些包括Tkinter而另一些则没有。
您所描述的是在您的系统上拥有多个Python的症状。当你运行IDLE时,显然你正在运行一个安装了Tkinter的程序。命令行中可用的那个显然没有。确认这一点的一种方法是尝试从命令行启动IDLE:python -m idlelib.idle
。如果IDLE未启动,则不会安装Tkinter,您需要找到成功运行IDLE的版本的路径。
我遇到了同样的问题,在我改变这个问题之前找不到任何解决方案:
from Tkinter import *
至:
from tkinter import *
我不知道大写T适用于其他,但在Windows 64位Python 3.4.1下,它应该是“tkinter”
对于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()
如果您之前创建了tkinter.py,请检查您的文件名,然后它也会导致同样的问题。它会先导入
认为这将有助于“tk未定义”
from tkinter import *
import tkinter.tkFileDialog
root = tkinter.Tk('Anything you want is displayed')
这适用于Python 3:
from Tkinter import *
import Tkinter as tk
window = tk.Tk()
window.title("Welcome to LikeGeeks app")
window.mainloop()
来自tkinter进口*
root = Tk()
使用小写t导入并在TK中使用大写T.
这对我有用