python3 모듈을 사용할 때 코드의 파일 디렉터리/폴더가 중요합니까? 질문이 있습니다[닫기]

python3 모듈을 사용할 때 코드의 파일 디렉터리/폴더가 중요합니까? 질문이 있습니다[닫기]

나는 최근 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로 지정했습니다. 모듈은 일반적으로 폴더에 관계없이 작동해야 하며 파일 이름을 바꾸면 작업이 완료되었습니다. 이미 파일이 있으므로 모듈 이름과 같은 이름으로 파일 이름을 지정할 수 있습니다.

관련 정보