用 Python 编程:仅在命令提示符处获取“名称‘Tk’未定义”,可在 IDLE 中使用

use*_*460 6 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()
Run Code Online (Sandbox Code Playgroud)

也因为我知道每个人都会回答它,所以我没有使用 3.x 并且我尝试运行该程序并将其称为“tkinter”,但它根本找不到模块。

显然这个程序可以在其他人的计算机上运行,​​所以代码本身没有问题。有谁知道是什么导致了这个问题?

小智 13

我找到的解决方案是不要给出文件 tkinter.txt 的名称。


ans*_*410 7

在我的电脑上工作正常。

既然你说: NameError: name 'tk' 没有定义。

这里 tk 带有一个小“t”

你可能写过

root = tk()
Run Code Online (Sandbox Code Playgroud)

代替 :

root = Tk()
Run Code Online (Sandbox Code Playgroud)

检查大写“T”


Buf*_*ter 5

我想这与

  1. 正在使用的python版本一
  2. 你基本上是如何导入库的

为了python 2.x使用这个

from Tkinter import *

root = Tk()

root.mainloop()
Run Code Online (Sandbox Code Playgroud)

或者

from tkinter import *

root = tkinter()

root = mainloop()
Run Code Online (Sandbox Code Playgroud)


ima*_*bet 5

对于Python 2.x使用:

from Tkinter import * as tk
import Tkinter as tk
root = Tk()
Run Code Online (Sandbox Code Playgroud)

对于Python 3使用:

from tkinter import * as tk
import tkinter as tk
root = tk.Tk()
Run Code Online (Sandbox Code Playgroud)


小智 5

如果您之前创建了 tkinter.py,还要检查您的文件名,那么它也会导致同样的问题。它将首先被导入