【Python】「ModuleNotFoundError: No module named ‘_tkinter’」対処

雑学

更新月:2025/1
Macbook(MacOS)でのPython実行時、Tkinterのエラー「ModuleNotFoundError: No module named ‘_tkinter’」発生時の対処法の説明となります。

解決策: Tkinterが動作しない場合の対応方法(pyenv使用時)

ステップ 1: XQuartzのインストール確認

TkinterはMacOSでGUIアプリケーションを表示するために、X11(XQuartz)を使用することがあります。まず、XQuartzがインストールされているかを確認します。

1. XQuartzがインストールされているか確認

which XQuartz

インストールされている場合: /opt/X11/bin/XQuartz などのパスが表示されます。
インストールされていない場合: 何も表示されません。

2. XQuartzのバージョン確認

Launchpad → その他 → XQuartzをダブルクリックもしくはターミナルで「XQuartz」実行でXQuartzが立ち上がります。
上部メニューバー → XQuartz → X11についての順に進めると、XQuartzのバージョンが分かります。

3. XQuartzがインストールされていない場合

brew install --cask xquartz

途中パスワードが求められます。XQuartzをインストール後、MacOSを再起動し、再度確認してください。

ステップ 2: tcl-tkのインストール確認

Tkinterはライブラリに依存しているため、tcl-tkがインストールされていない場合、Tkinterは正しく動作しません。次に、tcl-tkがインストールされているかを確認します。

1. tcl-tkがインストールされているか確認

brew list tcl-tk

インストールされている場合: tcl-tkのパスが表示されます。
インストールされていない場合:「Error: No such keg: /opt/homebrew/Cellar/tcl-tk」と表示されます。

2. tcl-tkがインストールされていない場合

brew install tcl-tk

brewによるtcl-tkインストール

brew link tcl-tk --force

念のため、tcl-tkリンクコマンドを明示的に実行。

ステップ 3: pyenvの使用確認とPythonの再インストール

1. pyenvのインストール確認

which pyenv

インストールされている場合: pyenvのエイリアスメソッドが表示されます。
インストールされていない場合: 「pyenv not found」と表示されます。

2. pyenvがインストールされていない場合

brew install pyenv

pyenvインストール後、必要なPythonバージョンをインストールします。

ステップ 4: Pythonを再インストール(pyenvでのインストール)

1. pyenvでPythonをアンインストール

pyenv uninstall 3.x.x(バージョン番号)

※アンインストールをせずに別の新しいバージョンをインストールする方法もあります。

2. pyenvでPythonをインストール

pyenv install 3.x.x(バージョン番号)

3. pyenvでインストールしたPythonを使用するように設定

pyenv global 3.x.x

これでpyenvでインストールしたPythonがシステムのデフォルトとして使用されるようになります。

ステップ 5: Tkinterの動作確認

Pythonを再インストールした後、Tkinterが正しく動作するかを確認するため、以下のコマンドを実行します。

python -m tkinter

Tkinterが正常に動作する場合、シンプルなGUIウィンドウが表示されます。
エラーが発生する場合、さらにトラブルシューティングが必要です。

まとめ

  • XQuartzがインストールされているか確認し、インストールされていない場合はbrew install --cask xquartzでインストール。
  • tcl-tkがインストールされているか確認し、インストールされていない場合はbrew install tcl-tkでインストール。
  • pyenvでpyenv uninstall 3.x.xアンインストールし、pyenv uninstall 3.x.xインストール。pyenv globalで使用するPythonバージョンを設定。
  • Tkinterの動作確認を行い、問題が解決したか確認します。

これらの手順に従うことで、「ModuleNotFoundError: No module named ‘_tkinter’」エラーを解決できるはずです。

関連記事

外部リンク

生成AIメモ

  • 利用AI:ChatGPT 4o mini、一部利用
  • プロンプト1:MacOSにてPythonを起動したところ、以下のメッセージが出力されました。解決策を提示してください。
    「ModuleNotFoundError: No module named ‘_tkinter’」

    以下の点を考慮した提示をお願いします。
    ・アプリインストールが必要な場合はまず既にインストールしているか確認する手順を含めて提示してください。
    ・Python再インストールが必要な場合はpyenvを使用しているケースに絞って説明をお願いします。

  • プロンプト2:先程の内容をhtml形式(style使わず)で示してください

内容チェックの後、かなりの加筆・修正し、動作確認済。Pythonの直近のバージョンアップに追従出来ていないのと、Tkinter導入手順がインターネット記事で千差万別である為、無料版ChatGPTはまだ厳しそう。