3
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

RuntimeError("tk.h version (%s) doesn't match libtk.a version (%s)

Last updated at Posted at 2023-03-04

原因

エラー文は以下である。

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を最新のバージョンに設定すればいいだけだった。
逆に最新のバージョンにすると動かなくなるケースもあるので、ここら辺は色々試しながら決めていきたい。

3
0
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?