2013-12-14 14 views
8

Ich habe solche Importe und Code:Import: Kein Modul namens backend_tkagg

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() 

Nach der Ausführung dieses Codes Ich habe solche Fehler:

/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 

I`m mit openSUSE und PyCharm Community Edition neueste Version mit installierten Pandas, Numpy, etc Wie kann ich dieses Problem beheben?

Antwort

9

Ich habe das schon einmal gesehen, auch auf openSUSE (12.3). Die Lösung besteht darin, die Standard-Matplot-Datei zu bearbeiten.

Hier ist, wie Sie feststellen, wo der Standard matplotlibrc Datei lebt, und wo er lebt auf meiner Maschine:

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

Die Back-End-Einstellung die erste Konfigurationsoption in dieser Datei ist. Ändern Sie es von TkAgg zu Agg oder zu einem anderen Backend, das Sie auf Ihrem System installiert haben. Die Kommentare in der Datei matplotlibrc listen alle von matplotlib unterstützten Backends auf.

Das in dieser Datei angegebene Backend ist nur der Standard; Sie können es nach wie vor, indem die folgenden zwei Zeilen, vor allen anderen matplotlib Import zur Laufzeit ändern:

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

Gute Antwort. Offizielles Matplotlib-Konfigurationsbeispiel: http://matplotlib.org/users/customizing.html – Plamen

+0

Das hat nicht für mich funktioniert. Allerdings konnte ich den Fehler beheben, indem ich das Backend-Modul vor dem Import von matplotlib.pyplot importierte. Siehe meine Antwort. Ich erwarte, dass es eine bessere Lösung als meine gibt, die den Pfad zu den Backend-Modulen spezifiziert. – user3731622

8

Ich benutze Open Suse 13.1 und hatte den gleichen Fehler „Import: Kein Modul mit dem Namen backend_tkagg“.

Ich löste es mit diesem Vorschlag: http://forums.opensuse.org/showthread.php/416182-Python-matplolib.

Ich habe das Python-Matplotlib-Tk-Paket installiert, und jetzt funktioniert es gut.

z. Sie verwenden können: zypper install python-matplotlib-tk

0

ich in der Lage war, dies zu beheben, indem

import matplotlib.backends.backend_tkagg 

oben

import matplotlib.pyplot as plt 

Hinweis setzen, erhielt ich den gleichen Fehler beim Versuch, eine ausführbare Datei auszuführen Py2exe erzeugt.

Hier ist, was ich habe, wenn ich TheProgram.exe von der Eingabeaufforderung lief:

>>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' 
2

ich verschiedene Lösungen versucht, nur das für mich funktioniert:

sudo pip install matplotlib --upgrade 
+0

hat es funktioniert !! Vielen Dank –