From matplotlib.backends import _tkagg ImportError: невозможно импортировать имя _tkagg
При попытке запустить этот пример, чтобы проверить, как работает matplotlib с Tkinter, я получаю сообщение об ошибке:
(env)[email protected]:~/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
Используя предоставленное решение здесь, я попытался удалить matplotlib и установить пакеты tk и tk-dev, используя следующие команды:
sudo apt-get install tk8.5
sudo apt-get install tk-dev
а затем снова установите matplotlib на pip install matplotlib
но я все еще получаю ту же ошибку. Любая помощь будет оценена по достоинству. Я использую Ubuntu 14.04 на VirtualBox и работаю в среде virtualenv.
Большое спасибо.
Ответы
Ответ 1
Я просто столкнулся с этим (Ubuntu 15.10, но с той же идеей) и исправил его:
sudo apt-get install tk-dev
pip uninstall -y matplotlib
pip --no-cache-dir install -U matplotlib
Я думаю, что третий шаг был критическим; если кеш разрешен, то pip
, по-видимому, просто использует ранее установленную установку matplotlib
.
Вы также можете вручную удалить ранее созданный matplotlib; на Ubuntu он живет где-то в ~/.cache/pip
. (К сожалению, я не смог найти способ для очистки кэша.)
Ответ 2
Попробуйте выполнить следующий сценарий:
sudo apt-get update
sudo apt-get install tk tk-dev
sudo pip uninstall matplotlib
sudo pip install matplotlib
EDIT:
Try:
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
Ответ 3
Один ответ на этот вопрос предполагает, что ошибка связана с отсутствующим распространением Visual С++ для Visual Studio 2015. Установка его решила проблему для меня.