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 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として指定しました。モジュールは通常、フォルダに関係なく機能する必要があり、ファイルの名前を変更すると操作が完了しました。すでにファイルが存在するので、モジュール名と同じ名前でファイル名を指定できます。

関連情報