auの日記

プログラミング初心者の日記。(auはハンドルネームです)

Pythonでtkinterを使おうとするとエラーが起きる場合の対処法

auです。

Pythonでクリックを取得するために、「tkinter」のライブラリを利用しようとしたら、以下のようなエラーが出ました。

File "click_event.py", line 1, in <module>
    import tkinter
  File "/Users/username/.pyenv/versions/3.7.0/lib/python3.7/tkinter/__init__.py", line 36, in <module>
    import _tkinter # If this fails your Python may not be configured for Tk
ModuleNotFoundError: No module named '_tkinter'

調べてみると、Pyenvを使っている人がこのライブラリを使うおうとする出るようです。

参考を見ながらやってみました。

1. Pyenvのバージョンを確認

pyenv -v

pyenv 1.x.x

2. Viを利用してファイルの775行目にの行を置換
この際に、VERSIONを上記で取得したPyenvのバージョンに書き換える

vi /usr/local/Cellar/pyenv/1.x.x/plugins/python-build/bin/python-build

3. 775行目を以下の内容に置き換える
$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

4. Pyenvに入っているPythonのバージョンを確認

pyenv versions

  system
* 3.x.x (set by PYENV_VERSION environment variable)
  anaconda3-4.3.1

5. PyenvにPythonを入れ直すために以下のコマンドを入力
アンイストールの際に許可を求められたので「y」と入力してエンターを押す

pyenv uninstall 3.x.x
pyenv install 3.x.x

6. tkinterを実行する

python -m tkinter

Windowが出てくれば成功している
f:id:program-shoshinsya:20200419235515p:plain

参考

qiita.com