web-dev-qa-db-fra.com

from matplotlib.backends import _tkagg ImportError: impossible d'importer le nom _tkagg

En essayant de lancer this exemple pour tester le fonctionnement de matplotlib avec Tkinter, je reçois le message suivant:

(env)fieldsofgold@fieldsofgold-VirtualBox:~/new$ python test.py
Traceback (most recent call last):
  File "test.py", line 7, in <module>
    from matplotlib.backends.backend_tkagg import FigureCanvasTkAgg, NavigationToolbar2TkAgg
  File "/home/fieldsofgold/new/env/local/lib/python2.7/site-packages/matplotlib/backends/backend_tkagg.py", line 13, in <module>
    import matplotlib.backends.tkagg as tkagg
  File "/home/fieldsofgold/new/env/local/lib/python2.7/site-packages/matplotlib/backends/tkagg.py", line 7, in <module>
    from matplotlib.backends import _tkagg
ImportError: cannot import name _tkagg

En utilisant la solution fournie ici , j'ai essayé de désinstaller matplotlib et d'installer les paquetages tk et tk-dev en utilisant les commandes suivantes:

Sudo apt-get install tk8.5
Sudo apt-get install tk-dev

puis ré-installer matplotlib à nouveau avec pip install matplotlib mais je reçois toujours la même erreur. Toute aide serait appréciée. J'utilise Ubuntu 14.04 sur VirtualBox et travaille dans un environnement virtuel. Merci beaucoup.

12
QPTR

Je viens de rencontrer ceci (Ubuntu 15.10 mais la même idée) et corrigé par:

Sudo apt-get install tk-dev
pip uninstall -y matplotlib
pip --no-cache-dir install -U matplotlib

Je pense que la troisième étape était la critique; si le cache est autorisé, alors pip semble ne faire qu'utiliser l'installation précédemment construite de matplotlib.

Vous pouvez également supprimer manuellement la bibliothèque matplotlib précédemment construite; sur Ubuntu, il réside dans ~/.cache/pip quelque part. (Malheureusement, pip n'a pas trouvé le moyen de nettoyer sa mémoire cache.)

26
lmjohns3

Essayez de suivre ce scénario:

Sudo apt-get update

Sudo apt-get install tk tk-dev

Sudo pip uninstall matplotlib 

Sudo pip install matplotlib

MODIFIER:

Essayer:

Sudo pip uninstall matplotlib 

Sudo apt-get install python-matplotlib

EDIT2:

Sudo apt-get install tk8.6-dev

Sudo apt-get remove python-matplotlib

Sudo apt-get install python-matplotlib
1
YOBA

Une réponse à cette question suggère que l'erreur est due à l'absence d'un redistribuable Visual C++ pour Visual Studio 2015. L'installation a résolu le problème pour moi. 

0
DrawT