使用Python编程:仅在命令提示符处获取“名称'Tk'未定义”,适用于IDLE

时间:2011-11-26 02:16:38

标签: python tkinter python-idle

刚从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 个答案:

答案 0 :(得分:4)

在我的电脑上工作正常。

因为您说:NameError:名称'tk'未定义。

这里有一个小't'

你可能写过

root = tk()

而不是:

root = Tk()

检查资本'T'

答案 1 :(得分:3)

我想这与

有关
  1. python版本正在使用
  2. 你基本上如何导入图书馆
  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)

来自tkinter import *

root = Tk()

使用小写字母t导入并在TK中使用大写字母T

这对我有用