CentOS7上のpython3でmatplotをimportすると、次のようなエラーが発生しました。pythonのバージョンは3.6.8です。
$python3 --version
Python 3.6.8
$ python3 knn.py
Traceback (most recent call last):
File "knn.py", line 6, in <module>
import matplotlib.pyplot as plt
File "/usr/local/lib64/python3.6/site-packages/matplotlib/pyplot.py", line 2372, in <module>
switch_backend(rcParams["backend"])
File "/usr/local/lib64/python3.6/site-packages/matplotlib/pyplot.py", line 207, in switch_backend
backend_mod = importlib.import_module(backend_name)
File "/usr/lib64/python3.6/importlib/__init__.py", line 126, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
File "/usr/local/lib64/python3.6/site-packages/matplotlib/backends/backend_tkagg.py", line 1, in <module>
from . import _backend_tk
File "/usr/local/lib64/python3.6/site-packages/matplotlib/backends/_backend_tk.py", line 5, in <module>
import tkinter as Tk
ModuleNotFoundError: No module named 'tkinter'
tkinterが見つからないというエラーですが、sudo yum install tkinterでtkinterをインストールしてもエラーは消えません。
解決方法
yumでインストールしたpython3のバージョンに合ったtkinterをインストールすると、エラーが解消しました。
python3をpython36u($sudo yum install -y python36u python36u-libs python36u-devel python36u-pip)でインストールした場合は、python36u-tkinterをインストールする必要があります。
$sudo yum install python36u-tkinter