Ubuntのpyenv上でtkinterを使えるようにする

UbuntuでPythonを利用していると標準GUIライブラリのtkinterの読み込みに失敗することがあります。

ModuleNotFoundError: No module named '_tkinter'

原因は2つ考えられます。

  • システムにtkinterがインストールされていない
  • pyenvで環境を構築した際にtkinterがインストールされていない

pyenvを使用している場合、いずれにせよ一旦Pythonの環境を削除して再度インストールする必要はあります。

# 一旦ネイティブ環境に切り替える
pyenv global system

# 対象の環境を削除する
pyenv uninstall 3.X.X

# 必要なものをインストールする
sudo apt-get install python3-tk
sudo apt install tk-dev

# 再度環境をインストールする
pyenv install 3.X.X
pyenv global 3.X.X