macOSのpyenvを使うと、Tkinterが正しく動かないことが多いのです。
正しくインストールするポイントは、次の通り:
-
tcl-tk@8
をインストールすること - ビルド時の変数に
tcl-tk@8
へのパスを追加すること
2025/04/21の時点で、下記のようにインストールするとうまくいきました。
1. 依存パッケージをインストール
brew install openssl readline sqlite3 xz zlib
brew install tcl-tk@8 # バージョン9.0に問題があるので @8 を明示
なお、コマンド「brew pin tcl-tk@8
」を実行しておくと、tcl-tkのアップグレードを抑止できます。
2. シェルに追記(例: ~/.zshrc)
export PATH="$(brew --prefix tcl-tk@8)/bin:$PATH"
export CPPFLAGS="-I$(brew --prefix tcl-tk@8)/include"
export LDFLAGS="-L$(brew --prefix tcl-tk@8)/lib"
export PKG_CONFIG_PATH="$(brew --prefix tcl-tk@8)/lib/pkgconfig"
3. Python をビルド
env PYTHON_CONFIGURE_OPTS="--enable-framework" \
pyenv install 3.9.22
4. 動作確認
pyenv global 3.9.22
python -m tkinter
オプション
Pythonで最も簡単にGUIが作成できるパッケージTkEasyGUIをインストール!
pip install -U TkEasyGUI
python -c "import TkEasyGUI as eg; eg.popup('hi')"
というのも、Python3.9で、TkEasyGUIが動かないと報告があったので、試行錯誤してインストールしました。