来自matplotlib.backends import _tkagg ImportError:无法导入名称_tkagg

QPT*_*PTR 14 python tk-toolkit pip matplotlib virtualenv

在试图跑步的同时 示例以测试matplotlib如何与Tkinter一起工作时,我收到错误:

(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
Run Code Online (Sandbox Code Playgroud)

使用此处提供的解决方案,我尝试使用以下命令卸载matplotlib并安装tk和tk-dev软件包:

sudo apt-get install tk8.5
sudo apt-get install tk-dev
Run Code Online (Sandbox Code Playgroud)

然后重新安装matplotlib pip install matplotlib 但我仍然得到相同的错误.任何帮助,将不胜感激.我在VirtualBox上使用Ubuntu 14.04并在virtualenv环境中工作.非常感谢.

lmj*_*ns3 26

我刚刚碰到了这个(Ubuntu 15.10,但同样的想法)并修复了它:

sudo apt-get install tk-dev
pip uninstall -y matplotlib
pip --no-cache-dir install -U matplotlib
Run Code Online (Sandbox Code Playgroud)

我认为第三步是关键步骤; 如果允许缓存,那么pip似乎只是使用以前构建的安装matplotlib.

您也可以手动删除以前构建的matplotlib; 在Ubuntu它住在~/.cache/pip某个地方.(遗憾的是,我无法找到pip清理缓存的方法.)


Har*_*rry 13

Windows 10 上的 Python 3.7.4,用 NavigationToolbar2Tk 替换 NavigationToolbar2TkAgg 对我有用。

更改自:

从 matplotlib.backends.backend_tkagg 导入(FigureCanvasTkAgg, NavigationToolbar2TkAgg)

到:

从 matplotlib.backends.backend_tkagg 导入(FigureCanvasTkAgg, NavigationToolbar2Tk)


YOB*_*OBA 1

尝试遵循以下场景:

sudo apt-get update

sudo apt-get install tk tk-dev

sudo pip uninstall matplotlib 

sudo pip install matplotlib
Run Code Online (Sandbox Code Playgroud)

编辑:

尝试:

sudo pip uninstall matplotlib 

sudo apt-get install python-matplotlib
Run Code Online (Sandbox Code Playgroud)

编辑2:

sudo apt-get install tk8.6-dev

sudo apt-get remove python-matplotlib

sudo apt-get install python-matplotlib
Run Code Online (Sandbox Code Playgroud)