【问题标题】:importError tkinter when importing matplotlib导入matplotlib时importError tkinter
【发布时间】:2017-02-07 20:44:26
【问题描述】:

我无法在来自 aws 市场的 this 深度学习 AMI 上导入 matplotlib

import matplotlib.pyplot as plt

我得到了这个错误

ImportError: 没有名为“tkinter”的模块

我尝试过的(以及返回的错误):

pip install tkinter
> No matching distribution found for TKinter

sudo yum install tkinter
> No package tkinter available.
> Error: Nothing to do

【问题讨论】:

  • 你试过sudo yum install python-tkinter吗?
  • 是的,和sudo yum install tkinter一样的错误
  • 你运行的是python2还是python3?
  • 我正在使用python2
  • 您无法使用 pip、FWIW 安装 tkinter。

标签: python linux matplotlib pip


【解决方案1】:

我个人在使用 tkinter 时遇到过这种麻烦,在意识到它需要 python3 中的 't' 和 python2 中的 'T' 之前。所以当我需要兼容性时,我的代码包含:

import sys
if sys.version_info[0]>2:
    # for Python 3
    import tkinter as tk
else:
    # for Python 2
    import Tkinter as tk

希望对你有帮助

【讨论】:

    【解决方案2】:

    首先找到matplotlibrc文件的位置

    import matplotlib matplotlib.matplotlib_fname()

    u'/usr/local/lib64/python2.7/site-packages/matplotlib/mpl-data/matplotlibrc'

    然后去这个文件,把后端的当前配置改成 backend : agg

    这并不能解决导入Tkinter的问题,但确实允许导入pyplot

    【讨论】:

      【解决方案3】:

      这对我有用:

      import matplotlib
      matplotlib.use('Agg')
      import matplotlib.pylab as plt
      

      在 python 3.5.x 上更新到新的 matplotlib 2.x 后遇到同样的问题

      【讨论】:

      • 是的,这基本上就是我所做的。除了我只是在 matplotlibrc 文件中设置它。查看我的答案
      • 我认为这可能比更改文件更方便。此外,它也是一种仅在特定脚本中更改后端的解决方案,不是吗?据我了解您的解决方案,它将全局更改所有脚本的后端,直到您再次更改 matplotlib 文件。
      • 是的,如果目标只是更改此脚本的后端,那么您的答案将是最好的。但是,我发现我的答案最适合我,因为我在一个项目的多个脚本中遇到了这个错误。
      猜你喜欢
      • 1970-01-01
      • 2011-11-21
      • 2019-02-06
      • 1970-01-01
      • 1970-01-01
      • 2015-12-22
      • 2018-05-13
      • 2017-11-13
      相关资源
      最近更新 更多