rhel7 matplotlib:“导入错误:没有名为Tkinter的模块”

时间:2018-08-17 14:17:16

标签: python linux matplotlib tkinter rhel7

我收到错误消息“ ImportError:没有名为Tkinter的模块”,但不知道为什么。

运行脚本时出现此错误,但这通常是由于您尝试使用尚未导入的库而引起的。我已经搜索过,发现的所有帖子都与有人用“ tkinter” python 2和3弄乱了“ Tkinter”,或者没有以正确的方式导入库有关。我已经在ubuntu 14.04上的命令行上运行了该脚本,在同一Ubuntu框上的Spyder上运行了该脚本,还在Cloudera Data Science工作台上运行了该脚本,它运行良好。在所有这些机器上,我都没有导入该库,它可以完美运行。

当我尝试在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

1 个答案:

答案 0 :(得分:2)

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

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

如果将tkinter安装在盒子上,则当然仍然可以使用。如果出于某些原因您更愿意这样做,我可以通知您,但这需要sudo