ImportError:没有名为' _tkinter'的模块,请安装python3-tk包

时间:2018-05-14 10:14:47

标签: python-3.x matplotlib tkinter ubuntu-16.04 importerror

我已经完成了这方面的所有类似问题,并尝试了那里提出的解决方案。但我无法解决此错误,尽管我的python3-tk软件包安装在我正在使用的适当的virtualenv项目中。

虽然在我的项目中,我没有使用tkinter,但当我尝试运行该文件时,我收到了与_tkinter模块相关的以下错误。

  

追踪(最近的呼叫最后):
    文件" /usr/lib/python3.5/tkinter/ init .py",第36行,在       import _tkinter
  ImportError:没有名为' _tkinter'

的模块      

在处理上述异常期间,发生了另一个异常:

     

追踪(最近的呼叫最后):
    File" /home/manuelanayantarajeyaraj/PycharmProjects/ChatbotWord2Vec/main.py" ;,第2行,in       从matplotlib导入pyplot作为plt
    文件" /home/manuelanayantarajeyaraj/usr/myProject/my_project/lib/python3.5/site-packages/matplotlib/pyplot.py" ;,第115行,在       _backend_mod,new_figure_manager,draw_if_interactive,_show = pylab_setup()
    文件" /home/manuelanayantarajeyaraj/usr/myProject/my_project/lib/python3.5/site-packages/matplotlib/backends/ init .py",第62行,在pylab_setup中       [backend_name],0)
    文件" /home/manuelanayantarajeyaraj/usr/myProject/my_project/lib/python3.5/site-packages/matplotlib/backends/backend_tkagg.py" ;,第4行,in       来自。 import tkagg#将图像绘制到Tk照片阻挡扩展。
    文件" /home/manuelanayantarajeyaraj/usr/myProject/my_project/lib/python3.5/site-packages/matplotlib/backends/tkagg.py" ;,第5行,在       从six.moves导入tkinter作为Tk
    文件" /home/manuelanayantarajeyaraj/usr/myProject/my_project/lib/python3.5/site-packages/six.py" ;,第92行,获取       result = self._resolve()
    文件" /home/manuelanayantyajeyaraj/usr/myProject/my_project/lib/python3.5/site-packages/six.py" ;,第115行,在_resolve中       return _import_module(self.mod)
    文件" /home/manuelanayantyajeyaraj/usr/myProject/my_project/lib/python3.5/site-packages/six.py" ;,第82行,在_import_module中       导入(名称)
    文件" /usr/lib/python3.5/tkinter/ init .py",第38行,在       引发ImportError(str(msg)+',请安装python3-tk包')
  ImportError:没有名为' _tkinter'的模块,请安装python3-tk包

因此,我导航到我的解释器的位置并创建了virtualenv并使用以下

安装了python3-tk包。
sudo apt-get install python3-tk

当我检查时,所有包似乎都是最新的

Reading package lists... Done
Building dependency tree       
Reading state information... Done
python3-tk is already the newest version (3.6.5-3~16.04.york0.2).
The following packages were automatically installed and are no longer required:
  libappindicator1 libindicator7 libllvm4.0 linux-headers-4.10.0-28
  linux-headers-4.10.0-28-generic linux-headers-4.13.0-36
  linux-headers-4.13.0-36-generic linux-headers-4.13.0-37
  linux-headers-4.13.0-37-generic linux-image-4.10.0-28-generic
  linux-image-4.13.0-36-generic linux-image-4.13.0-37-generic
  linux-image-extra-4.10.0-28-generic linux-image-extra-4.13.0-36-generic
  linux-image-extra-4.13.0-37-generic linux-signed-image-4.10.0-28-generic
  linux-signed-image-4.13.0-36-generic linux-signed-image-4.13.0-37-generic
Use 'sudo apt autoremove' to remove them.
0 upgraded, 0 newly installed, 0 to remove and 37 not upgraded.

但我仍然遇到相同的导入错误ImportError: No module named '_tkinter', please install the python3-tk package

这方面的任何建议都将受到高度赞赏。

2 个答案:

答案 0 :(得分:18)

导入matplotlib时,可能会尝试使用tk后端作为默认值。如果您没有安装tk,或者您不想在项目的其他任何地方使用它,那么可能的解决方案就是使用不同的后端:

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

答案 1 :(得分:6)

该消息表明,当您运行sudo apt-get install python3-tk时,它会告诉您tkinter已被 Python3.6.5 屏蔽,但另一方面,ImportError与<{1}}相关联强> Python3.5 即可。所以我相信这应该可以解决你的问题:

sudo apt-get install python3.5-tk