我最近在做 python GUI 编程时问我通过以下方式安装了 tkinter
apt-get install python3-tk
一切顺利,当我在以下目录中打开 python3 控制台时
~/python-gui/
但我移动到“python-gui”文件夹中另一个名为“tkinter”的文件夹并尝试编译以下代码
import tkinter as tk
class Application(tk.Frame):
def __init__(self, master=None):
tk.Frame.__init__(self, master)
self.pack()
self.createWidgets()
def createWidgets(self):
self.hi_there = tk.Button(self)
self.hi_there["text"] = "Hello World\n(click me)"
self.hi_there["command"] = self.say_hi
self.hi_there.pack(side="top")
self.QUIT = tk.Button(self, text="QUIT", fg="red",
command=root.destroy)
self.QUIT.pack(side="bottom")
def say_hi(self):
print("hi there, everyone!")
root = tk.Tk()
app = Application(master=root)
app.mainloop()
我做到了
python3 tkinter.py
令人惊讶的是我得到了这个错误
Traceback (most recent call last):
File "tkinter.py", line 1, in <module>
import tkinter as tk
File "/root/python_gui/tkinter/tkinter.py", line 3, in <module>
class Application(tk.Frame):
AttributeError: 'module' object has no attribute 'Frame'
所以我从该路径进入 python3 控制台并尝试在控制台内导入 tkinter 但再次遇到相同的错误,但是当我尝试直接在“python-gui”文件夹下编译相同的代码时,它会正确导入并编译,并且当我在我尝试过的“~/python-gui/tkinter/”文件夹
/usr/bin/python3.4
tkinter 没有再次导入,但我出来并再次尝试它,为什么 python 模块不在“/tkinter/”文件夹中工作?我该如何解决这个问题?
谢谢。
操作系统信息:Linux root 4.0.0-kali1-amd64 #1 SMP Debian 4.0.4-1+kali2 (2015-06-03) x86_64 GNU/Linux
蟒蛇:蟒蛇3.4.2
答案1
好吧,我的错,我在调用模块 tkinter 时将程序文件命名为 tkinter.py,模块通常应该无论文件夹如何都可以工作,只需重命名文件名即可完成工作。您可以将文件名命名为类似于模块名称,因为已经有一个文件了。