web-dev-qa-db-ja.com

matplotlib.backendsからインポート_tkagg ImportError:名前_tkaggをインポートできません

MatplotlibがTkinterでどのように機能するかをテストする this の例を実行しようとすると、エラーが発生します。

(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

提供されているソリューションを使用して here を使用して、matplotlibをアンインストールし、次のコマンドを使用してtkおよびtk-devパッケージをインストールしようとしました。

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

その後、pip install matplotlibによって再度matplotlibを再インストールしますが、それでも同じエラーが発生します。任意の助けいただければ幸いです。私はVirtualBoxでUbuntu 14.04を使用しており、virtualenv環境内で作業しています。本当にありがとう。

14
QPTR

私はこれに遭遇しました(Ubuntu 15.10ですが同じ考えです)、それを修正しました:

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

3番目のステップは重要なステップだったと思います。キャッシュが許可されている場合、pipは以前にビルドされたmatplotlibのインストールを使用しているように見えます。

以前にビルドしたmatplotlibを手動で削除することもできます。 Ubuntuでは~/.cache/pipどこかに。 (残念ながら、pipがキャッシュをクリーンアップする方法が見つかりませんでした。)

27
lmjohns3

Windows 10上のPython 3.7.4は、NavigationToolbar2TkAggをNavigationToolbar2Tkに置き換えることで機能します。

matplotlib.backends.backend_tkagg importから(FigureCanvasTkAgg、NavigationToolbar2TkAgg)

matplotlib.backends.backend_tkagg import(FigureCanvasTkAgg、NavigationToolbar2Tk)から

2
Harry

このシナリオに従ってください:

Sudo apt-get update

Sudo apt-get install tk tk-dev

Sudo pip uninstall matplotlib 

Sudo pip install matplotlib

編集:

試してください:

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

この質問 に対する1つの回答は、エラーがVisual Studio 2015のVisual C++再頒布可能パッケージがないために発生していることを示唆しています。インストールすることで問題は解決しました。

1
DrawT