2013-12-14 22 views
8

ho tali importazioni e il codice:ImportError: No module named 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() 

Dopo l'esecuzione di questo codice che ho tali errori:

/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 

`m utilizzando openSUSE e della comunità PyCharm edizione più recente versione con panda installati, numpy, ecc. Come posso risolvere questo problema?

risposta

9

L'ho visto prima, anche su openSUSE (12.3). La correzione è di modificare il file matplotlibrc predefinito.

Ecco come trovare in cui il file di default vita matplotlibrc, e dove vive sulla mia macchina:

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

L'impostazione di back-end è la prima opzione di configurazione in questo file. Cambialo da TkAgg a Agg o in qualche altro backend che hai installato sul tuo sistema. I commenti nel file matplotlibrc elencano tutti i backend supportati da matplotlib.

Il back-end specificato in questo file è solo l'impostazione predefinita; si può ancora cambiare a runtime aggiungendo le seguenti due linee, prima di ogni altra matplotlib importazione:

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

Buona risposta. Esempio ufficiale di configurazione matplotlib: http://matplotlib.org/users/customizing.html – Plamen

+0

Questo non ha funzionato per me. Tuttavia, sono stato in grado di correggere l'errore importando il modulo di back-end prima di importare matplotlib.pyplot. Vedi la mia risposta. Prevedo che ci sia una soluzione migliore della mia che prevede di specificare il percorso dei moduli di back-end. – user3731622

8

Io uso openSuse 13.1 e aveva lo stesso errore "ImportError: No modulo denominato backend_tkagg".

Ho risolto questo problema utilizzando questo suggerimento: http://forums.opensuse.org/showthread.php/416182-Python-matplolib.

Ho installato il pacchetto python-matplotlib-tk e ora funziona perfettamente.

E.g. è possibile utilizzare: zypper install python-matplotlib-tk

0

sono stato in grado di risolvere questo problema mettendo

import matplotlib.backends.backend_tkagg 

sopra

import matplotlib.pyplot as plt 

nota, ho ricevuto lo stesso errore durante il tentativo di eseguire un file eseguibile generato utilizzando Py2exe.

Ecco quello che ho avuto quando mi sono imbattuto TheProgram.exe dal prompt dei comandi:

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

ho provato varie soluzioni, solo che questa funziona per me:

sudo pip install matplotlib --upgrade 
+0

ha funzionato !! Grazie –

Problemi correlati