原因
エラー文は以下である。
raise RuntimeError("tk.h version (%s) doesn't match libtk.a version (%s)"
RuntimeError: tk.h version (8.5) doesn't match libtk.a version (8.6)
これはtk.hとlibtk.aのバージョンが異なるのでエラーになったという意味である。
なら、バージョンを一致させる必要がありそうだ。
エラー文を検索したところ、以下のエラー文が頻出しているようだった。
RuntimeError: tk.h version (8.6) doesn't match libtk.a version (8.5)
バージョンの記述が逆であった。
解決
エラーが出現した時のPythonのバージョンは3.10.4であった。
今出ているバージョンで最新に近いものをインストールし設定したところ、実行できるようになった。
$ pyenv install 3.12.0a5
設定のやり方は以下である。
$ pyenv versions
system
3.9.1
* 3.10.4
3.11.2
3.12.0a5
$ pyenv global 3.12.0a5
すると、こうなる。
$ pyenv versions
system
3.9.1
3.10.4
3.11.2
* 3.12.0a5
*が移動しない場合は、unsetをしてもう一度やってみると良いだろう。
$ pyenv shell --unset
$ pyenv global 3.12.0a5
これでtkinterを起動する。
$ python -m tkinter
画面が表示されたら完了だ。
補足
エラーが
RuntimeError: tk.h version (8.6) doesn't match libtk.a version (8.5)
の場合は、
などを参考にすると良いかもしれない(繰り返しになるが、私の記事の場合はバージョンの表記が逆である)。
まとめ
出力されたバージョンの表記がよく記事になっているものの逆の場合はどうすればいいのかを記事にしてみた。
Pythonを最新のバージョンに設定すればいいだけだった。
逆に最新のバージョンにすると動かなくなるケースもあるので、ここら辺は色々試しながら決めていきたい。