ImportError:没有名为backend_tkagg的模块

时间:2013-12-14 10:55:40

标签: python numpy module pycharm python-module

我有这样的导入和代码:

import pandas as pd
import numpy as np
import statsmodels.formula.api as sm
import matplotlib.pyplot as plt    


#Read the data from pydatasets repo using Pandas
url = './file.csv'
white_side = pd.read_csv(url)    
#Fitting the model    
model = sm.ols(formula='budget ~ article_size',
               data=white_side,
               subset=white_side['producer'] == "Peter Jackson")
fitted = model.fit()
print fitted.summary()

执行此代码后,我遇到了这样的错误:

/usr/bin/python2.7 /home/seth/PycharmProjects/osiris_project/PMN_way/start.py
Traceback (most recent call last):
  File "/home/seth/PycharmProjects/osiris_project/PMN_way/start.py", line 5, in <module>
    import matplotlib.pyplot as plt
  File "/usr/lib64/python2.7/site-packages/matplotlib/pyplot.py", line 98, 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 25, in pylab_setup
    globals(),locals(),[backend_name])
ImportError: No module named backend_tkagg

Process finished with exit code 1

我正在使用openSUSE和pycharm社区版最新版本,已安装pandas,numpy等 我该如何解决这个问题?

7 个答案:

答案 0 :(得分:10)

我以前见过这个,也见过openSUSE(12.3)。修复是编辑默认的matplotlibrc文件。

以下是您如何找到默认matplotlibrc文件所在的位置以及它在我的计算机上的位置:

>>> import matplotlib
>>> matplotlib.matplotlib_fname()
'/usr/lib64/python2.7/site-packages/matplotlib/mpl-data/matplotlibrc'

后端设置是此文件中的第一个配置选项。将其从TkAgg更改为Agg,或更改为系统上已安装的其他后端。 matplotlibrc文件中的注释列出了matplotlib支持的所有后端。

此文件中指定的后端仅为默认值;您仍然可以在运行时通过在任何其他matplotlib导入之前添加以下两行来更改它:

import matplotlib
matplotlib.use("Agg")  # or whichever backend you wish to use

答案 1 :(得分:8)

我使用openSuse 13.1并且遇到了相同的错误“ImportError:没有名为backend_tkagg的模块”。

我使用这个建议解决了这个问题:http://forums.opensuse.org/showthread.php/416182-Python-matplolib

我已经安装了python-matplotlib-tk软件包,现在工作正常。

E.g。您可以使用:zypper install python-matplotlib-tk

答案 2 :(得分:3)

我尝试了各种解决方案,只有这对我有用:

sudo pip install matplotlib --upgrade

答案 3 :(得分:1)

我能够通过添加

来解决这个问题
import matplotlib.backends.backend_tkagg

以上

import matplotlib.pyplot as plt

注意,我在尝试运行使用Py2exe生成的可执行文件时收到了同样的错误。

以下是我从命令提示符运行TheProgram.exe时得到的内容:

>>TheProgram.exe
Traceback (most recent call last):
  File "ThePythonScriptToMakeIntoExe.py", line 14, in <module>
  File "C:\Python34\lib\site-packages\matplotlib\pyplot.py", line 109, in <module>
    _backend_mod, new_figure_manager, draw_if_interactive, _show = pylab_setup()
  File "C:\Python34\lib\site-packages\matplotlib\backends\__init__.py", line 32, in pylab_setup
    globals(),locals(),[backend_name],0)
ImportError: No module named 'matplotlib.backends.backend_tkagg'

答案 4 :(得分:0)

我通过在启动python之前设置变量来解决了这个问题

export MPLBACKEND=Agg; python3

取自here

答案 5 :(得分:0)

我之前遇到过这个问题,我使用了3.0.0版的matplotlib旧版本解决了该问题 如果您没有此版本,请尝试pip install matplotlib==3.0.0 希望这对您有所帮助!

答案 6 :(得分:0)

在使用 2.2.2 版本进行实时绘图时,我遇到了这个问题。尝试了以下内容:

pip install matplotlib==3.0.0 --user

它仍然是一个较旧的版本,但是它起作用了。