pyenvを使ってインストールしたPythonでNo module named '_tkinter'となったとき
pyenvを使ってインストールしたPythonで、tkinterを使おうとしたとき、エラーとなりました。
import _tkinter # If this fails your Python may not be configured for Tk ModuleNotFoundError: No module named '_tkinter'
tkinterが自分の環境にインストールされているか調べてみました。
インストールされていないようなので、tkinterをインストールします。
$ python -m tkinter import _tkinter # If this fails your Python may not be configured for Tk ModuleNotFoundError: No module named '_tkinter'
home brewを使って、tcl-tkをインストールします。
$ brew install pyenv
pyenvがtcl-tkを使うように、python-buildスクリプトを修正します。
$ cd /usr/local/Cellar/pyenv/1.2.15/plugins/python-build/bin/python-build $ cp python-build python-build_original $ vi python-build
以下のように修正します。
【修正前】 $CONFIGURE_OPTS ${!PACKAGE_CONFIGURE_OPTS} "${!PACKAGE_CONFIGURE_OPTS_ARRAY}" || return 1 【修正後】 $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' ${!PACKAGE_CONFIGURE_OPTS} "${!PACKAGE_CONFIGURE_OPTS_ARRAY}" || return 1
pyenvを使って、Pythonをインストールします。
$ pyenv install 3.7.5 $ pyenv global
tkinterが使えるか、テストしてみます。
$ python -m tkinter -c 'tkinter._test()'
小さな画面が表示されれば、成功です。