1. ホーム
  2. python

AttributeError: モジュール 'tkinter' は属性 'filedialog' を持っていない Solution

2022-02-21 15:25:30
<パス

tkinter を使って小さなインターフェースを書くことを学習すると、このようなエラーが発生します。
AttributeError: モジュール 'tkinter' には 'filedialog' という属性がありません。

これを見ると、エラーになっているのは20行目のコードで、filedialogを使っているコマンドの行であることがわかります。

この問題はfiledialogがtkinterのモジュールであり、関数やプロパティではないため発生します。これは正しい呼び出し方とは言えません。

こんなテストをしてみました。
1. tk.filedialogを呼び出してみる
モジュール 'tkinter' に 'filedialog' という属性がないため、エラーが発生します。
2. モジュールfiledialogを導入し、その関数を呼び出してみてください。

呼び出しに成功しました。

以下のようにコードを修正したところ、正常に動作するようになりました。

実行結果、ファイルダイアログの呼び出しに成功

要約すると
このことから、filedialogはtkinterモジュールの下にあるサブモジュールであり、彼の関数やプロパティではないことがわかります。filedialogモジュールの下にある関数に直接行くことはできず、filedialogというサブモジュールを持ってきて、その関数を使う必要があります。
この問題から、改めてpythonを使う際には、サブモジュールと関数の性質に注意する必要があることがわかります。
また、これはクラスにおける関連知識であり、サブモジュールはサブクラス、関数は親クラスにおける関数である。

参考リンク 参考リンク