AttributeError: module ‘tkinter’ has no attribute ‘messagebox’の原因
tkinterでmessageboxを使おうとしたときに、タイトルのエラーが発生することがあります。
私自身もこのエラーに出くわして、なぜ起こるのかしばらく調べました。
今回はこのエラーが起こる原因と解消方法を紹介します。
AttributeError: module 'tkinter’ has no attribute 'messagebox’の原因
# NG
import tkinter
tkinter.messagebox.showinfo("タイトル", "メッセージ")
エラーが発生するのはこのようなコードを書いたときです。
「AttributeError: module 'tkinter’ has no attribute 'messagebox’」
このエラーは、tkinterの中にmessageboxという属性(メソッド、プロパティ)が無いということを教えてくれています。
このtkinterなのですが、tkinterをimportしてもmessageboxメソッドはimportされない仕様となっています。
そのため、messageboxメソッドを単独でimportする必要があります。
エラーの解消方法
# OK
from tkinter import messagebox
messagebox.showinfo("タイトル", "メッセージ")
エラーの解消方法ですが、このようにmessageboxを個別にimportすればエラーを解消することができます。