こんにちは,しまさん(@shimasan0x00)です.
pyenv:Python3.6.0でtkinterをimportとしようとするとエラーが出てしまいます.
ImportError: No module named '_tkinter’
tk.h version (8.6) doesn't match libtk.a version (8.5)
私はここで大変困ったのでその解決方法を紹介したいと思います.
結局pyenvのPythonをインストールしなおすことで解決しました.
環境
macOS Mojave(10.14)
pyenv Python3.6.0
スポンサーリンク
解決方法
まずはpyenvのPythonをアンインストールします.
ですがその前にpipでインストールしたものをバックアップしときます.
pip freeze > pip.txt
ただpipでscikit-learnをインストールしている場合はScipyが依存しているのでpip.txt内でScipyが先にくるようにしておいてください(アルファベット順ではscikit-learnが先に来てしまう).
ではPythonをアンインストールします.
pyenv uninstall python3.6.0
また,/Library/FrameworksにあるTcl.framework,Tk.frameworkも削除しましょう.
ActiveTclのサイトから赤枠部分の8.5.18をインストールしましょう.
もしHomebrewでtcl-tkをインストールされているのであればアンインストールしておいてください.

ではもう一度pyenvでインストールします.
私の場合はpython3.6.7にしました.
CFLAGS="-I$(brew --prefix readline)/include -I$(brew --prefix openssl)/include -I$(xcrun --show-sdk-path)/usr/include" \
LDFLAGS="-L$(brew --prefix readline)/lib -L$(brew --prefix openssl)/lib" \
PYTHON_CONFIGURE_OPTS=--enable-unicode=ucs2 \
pyenv install -v 3.6.7
pyenv global python3.6.7
あとは.bash_profileに以下の設定を追加します
export PYENV_ROOT="$HOME/.pyenv"
export PATH="$PYENV_ROOT/bin:$PATH"
eval "$(pyenv init -)"
REPLでimport tkinterをすると…

エラーが出ない!!!!やりました!!
pipのインストールをするのは
pip install -r pip.txt
スポンサーリンク
さいごに
今回はtkinterのインポートができないエラーの対処方法について紹介しました.
tkinter使えないのは致命傷だったので解決できてよかったです.
よいPythonライフを!!!
