[Python] 208 pyenvでtkinter8.6を使えるようにする

[macOS 10.15 Catalina]

macOSではtkinter8.5がデフォルトのようなので別途設定しました。

1. tcl-tkをインストールする。

brew install tcl-tk

2. tcl-tkのバージョンが8.6であることを確認する。

brew info tcl-tk

brew(醸造)だからbottledされたパッケージはcellar(貯蔵庫)に保管とはしゃれてますね。

tcl-tk: stable 8.6.10 (bottled) [keg-only]
Tool Command Language
https://www.tcl-lang.org
/usr/local/Cellar/tcl-tk/8.6.10 (3,036 files, 51MB)

3. bash_profileに以下を追記する。

export PATH="/usr/local/opt/tcl-tk/bin:$PATH"
export LDFLAGS="-L/usr/local/opt/tcl-tk/lib"
export CPPFLAGS="-I/usr/local/opt/tcl-tk/include"
export PKG_CONFIG_PATH="/usr/local/opt/tcl-tk/lib/pkgconfig"

4. pyenvにPython3.9.0を上書きインストールする。

PYTHON_CONFIGURE_OPTS="--with-tcltk-includes='-I/usr/local/opt/tcl-tk/include' --with-tcltk-libs='-L/usr/local/opt/tcl-tk/lib -ltcl8.6 -ltk8.6'" pyenv install 3.9.0

私の場合はPyInstallerにも対応しなければならず、オプションを一つ追加します。

PYTHON_CONFIGURE_OPTS="--with-tcltk-includes='-I/usr/local/opt/tcl-tk/include' --with-tcltk-libs='-L/usr/local/opt/tcl-tk/lib -ltcl8.6 -ltk8.6' --enable-shared" pyenv install 3.9.0

5. 確認のためtkinterを起動する。

python -m tkinter