나는 최근 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를 다시 가져오지 않았으나 나와서 다시 시도합니다. "/tkinter/" 폴더에서 Python 모듈이 작동하지 않는 이유는 무엇입니까? 이 문제를 어떻게 해결할 수 있나요?
감사해요.
운영 체제 정보: Linux 루트 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로 지정했습니다. 모듈은 일반적으로 폴더에 관계없이 작동해야 하며 파일 이름을 바꾸면 작업이 완료되었습니다. 이미 파일이 있으므로 모듈 이름과 같은 이름으로 파일 이름을 지정할 수 있습니다.