我需要帮助使这个简单的Tkinter程序在Ubuntu16.04.1上使用Python3.5.2。
下面是代码:
from tkinter import *
root = Tk()
mylabel = Label(root, text="Test")
mylabel.pack()
root.mainloop()
代码原样给了我这个错误:
Traceback (most recent call last):
File "tkinter.py", line 8, in <module>
from tkinter import *
File "/home/dylan/Documents/proj/python/tkinter.py", line 10, in <module>
root = Tk()
NameError: name 'Tk' is not defined
我注意到浏览其他问题时发现,在制作Tkinter程序时,有一些流行的东西可能出错。
python-tk
运行程序之前,我都安装了python3-tk
和python3-tk
软件包。注意:将我的文件重命名为tkinter.py
以外的东西会导致一个奇怪的错误:
Traceback (most recent call last):
File "mytkinter.py", line 8, in <module>
from tkinter import *
ImportError: bad magic number in 'tkinter': b'\x03\xf3\r\n'
tkinter
会给出Tk() not defined
错误,表明导入名是正确的,但Tk名称不正确。将它与大写T一起使用会给我一个no module named Tkinter
错误。使用tkinter.Tk()
会导致tkinter is not defined
错误。Installing tkinter on ubuntu 14.04Tk()
__的实例化,或类似的名称,都是错误的。打字- `root = tk()`
- `root = Tk()`
- `root = tkinter()`
- `root = Tkinter()`
- `root = tkinter.tk()`
- `root = tkinter.Tk()`
- `root = Tkinter.tk()`
- `root = Tkinter.Tk()`
- `root = tk.Tk()`
- `root = Tk.Tk()`
结果均为NameErrors。Programming in Python: Getting "name 'Tk' is not defined" only at Command Prompt, works in IDLE
另外要注意的是:命令python3 -m idlelib.idle
(如下面的问题所示)也会导致Tk not defined
错误。'Tk' is not defined
这里有什么问题吗?
发布于 2017-03-06 02:40:10
您似乎已经将文件命名为tkinter.py。您不能用要导入的模块命名文件。Python将尝试从现有文件中导入,而不是从tkinter模块导入。将有模块名科里森。在生成Tk()
的文件中没有定义这样的NameError。
但是,当您重命名该文件时,“坏魔术号”可能是由于.pyc文件(从.py文件编译)造成的,而这些文件可能会导致这样的错误。搜索并删除这些文件并重新运行。它应该解决这些问题。
发布于 2017-08-25 00:36:33
不要用模块的名称命名任何脚本,甚至部分名称。你的线索就在这里
File "mytkinter.py"
发布于 2020-05-18 19:05:59
如果您在空闲时使用root = Tk()
,那么它将运行,但是,如果您想在另一个IDE中使用此代码,则必须使用root = tkinter.Tk()
,这可能会有所帮助。
https://stackoverflow.com/questions/42616501
复制相似问题