rhel7 matplotlib: "ImportError: No module named Tkinter"

rhel7 matplotlib: "ImportError: No module named Tkinter"

我收到错误 "ImportError: No module named Tkinter" 但不知道为什么。

当我 运行 我的脚本时出现此错误,但这通常是对您尝试使用但尚未导入的库造成的。我已经搜索过,我发现的所有帖子都直接与某人将 "Tkinter" 与 "tkinter" python 2 和 3 搞砸了直接相关,或者没有以正确的方式导入库。我在 ubuntu 14.04 的命令行上有 运行 这个脚本,在同一个 Ubuntu 框上有 Spyder,在 Cloudera Data Science workbench 上也有,它运行良好。在所有这些机器上,我都没有导入库,但它运行完美。

当我尝试在我的 rhel 7 盒子上 运行 它时,我收到以下错误:

root@rhel7_box:/home/user/4688_events_PC-Tags_last_7_days# python 4688_events_PC-Tags_last_7_days_NN_FromMergedHash.py
Traceback (most recent call last):
  File "4688_events_PC-Tags_last_7_days_NN_FromMergedHash.py", line 5, in <module>
import matplotlib.pyplot as plt
  File "/usr/lib64/python2.7/site-packages/matplotlib/pyplot.py", line 115, in <module>
_backend_mod, new_figure_manager, draw_if_interactive, _show = pylab_setup()
  File "/usr/lib64/python2.7/site-packages/matplotlib/backends/__init__.py", line 62, in pylab_setup
[backend_name], 0)
  File "/usr/lib64/python2.7/site-packages/matplotlib/backends/backend_tkagg.py", line 4, in <module>
from . import tkagg  # Paint image to Tk photo blitter extension.
  File "/usr/lib64/python2.7/site-packages/matplotlib/backends/tkagg.py", line 5, in <module>
from six.moves import tkinter as Tk
  File "/usr/lib/python2.7/site-packages/six.py", line 203, in load_module
mod = mod._resolve()
  File "/usr/lib/python2.7/site-packages/six.py", line 115, in _resolve
return _import_module(self.mod)
  File "/usr/lib/python2.7/site-packages/six.py", line 82, in _import_module
__import__(name)
ImportError: No module named Tkinter

似乎在点击 "import matplotlib.pyplot as plt" 时出现错误。

这些是我正在使用的库,在其他任何地方都可以正常工作:

#Libraries
import pandas as pd
import numpy as np
import hashlib
import matplotlib.pyplot as plt
from sklearn.preprocessing import LabelEncoder, OneHotEncoder
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import StandardScaler
import keras
from keras.models import Sequential
from keras.layers import Dense
from sklearn.metrics import confusion_matrix

tkinter 用作 matplotlib 的 UI 处理后端。它应该与 python 一起提供,但由于各种原因可能不在您的系统上。您可能有 agg,(应随附 ubuntu),您可以使用它来代替。

import matplotlib
matplotlib.use('agg')
import matplotlib.pyplot as plt

如果您将 tkinter 安装在您的盒子上,您当然仍然可以使用它。如果出于某种原因您更喜欢它,我可以让您知道,但它需要 sudo.