🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
Matplotlib

MatplotlibはPythonのおよび、NumPy用のグラフ描画ライブラリです。多くの場合、IPythonと連携して使われます。

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Q&A

解決済

3回答

4351閲覧

cannot import name 'dedent' from 'matplotlib.cbook'

SKKKK

総合スコア1

Matplotlib

MatplotlibはPythonのおよび、NumPy用のグラフ描画ライブラリです。多くの場合、IPythonと連携して使われます。

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

0グッド

0クリップ

投稿2021/03/26 12:29

編集2021/03/26 12:32

matplotlibで描画しようとしたところ以下のエラーが出ました。
初心者のためか検索した記事を見てもいまいち解決方法が分かりませんでした↓。
https://github.com/matplotlib/basemap/issues/494
数か月前まではこのエラーは出ませんでしたが、anaconda3を入れなおしたことが原因でしょうか。
わかりやすく教えて頂ければ嬉しいです。

Traceback (most recent call last): File "XXX.py", line X, in <module> from mpl_toolkits.basemap import Basemap File "/XXXX/anaconda3/lib/python3.8/site-packages/mpl_toolkits/basemap/__init__.py", line 50, in <module> from .proj import Proj File "/XXXX/anaconda3/lib/python3.8/site-packages/mpl_toolkits/basemap/proj.py", line 6, in <module> from matplotlib.cbook import dedent ImportError: cannot import name 'dedent' from 'matplotlib.cbook' (/XXXX/anaconda3/lib/python3.8/site-packages/matplotlib/cbook/__init__.py)

Ubuntu 20.04.2 LTS (GNU/Linux 5.4.0-37-generic x86_64)
Python 3.8.5

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答3

0

初心者のためか検索した記事を見てもいまいち解決方法が分かりませんでした↓。
https://github.com/matplotlib/basemap/issues/494

WeatherGodさんのコメントによれば

Whatever version of basemap you installed is not compatible with that
version of matplotlib. Use the most recent tarball from github.

Also, Basemap is no longer supported! The End of Life has been announced
years ago. Stop using basemap, use Cartopy instead!

キミががインストールしたbasemapのバージョンがたとえ何であったとしても、それが**(今の)matplotlibのバージョンと互換性がない**ってこった。もっとも新しいbarball(linuxの圧縮形式)の(ソースコードを)githubから(ダウンロードして)使いなよ。

あと、Basemapはもうサポートされてないからさ!一年も前に(サポート)期限が切れることは知らされていたんだし。Basemapを使うのをやめて、Cartopyを代わりに使ってやって!


既に察していると思いますが、恐らくAnacondaに入っているMatplotlib(とその依存するパッケージ)が新旧入り乱れておかしくなっている可能性が高いと思います。

初めに試すこと)
matplotlibを一度uninstallして、もう一度installしなおしててください。

最後の手段)
Anacondaと(あれば普通のPythonやほかの環境)が混ざるのは一般に良くないので、(もしあれば両方とも)洗いざらいアンインストールして、奇麗にした後にきちんとどちらかのパッケージだけをインストール(Anacondaであれば依存関係も一式自動でインストールされるはずですし、普通のPythonであればPythonインストール後にpip install matplotlib)をしたらよさそうに思います。

投稿2021/03/26 13:05

編集2021/03/26 13:11
退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

SKKKK

2021/04/02 06:46

matplotlibを再インストールしたところ、同じエラーが返ってきました。 Anacondaを再インストールしてみましたが、似ているエラーが返ってきます↓。 Traceback (most recent call last): File "XXX.py", line X, in <module> from mpl_toolkits.basemap import Basemap File "/XXXX/anaconda3/lib/python3.8/site-packages/mpl_toolkits/basemap/__init__.py", line 26, in <module> from matplotlib.cbook import dedent ImportError: cannot import name 'dedent' from 'matplotlib.cbook' (/XXXX/anaconda3/lib/python3.8/site-packages/matplotlib/cbook/__init__.py)
SKKKK

2021/04/07 10:42

matplotlib==3.2にダウングレードしたらうまくいきました。 ありがとうございました!
guest

0

自己解決

(Basemapはすでに開発終了、Cartopyが後継として開発されている。)

matplotlib==3.2にダウングレードする。

conda install matplotlib==3.2

投稿2021/04/07 10:45

SKKKK

総合スコア1

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

モジュールがない場合、python環境にモジュールがインストールされていない可能性があります。
pythonを実行しているコンソールで、インストールされているモジュールの一覧を確認してみてください。

(anaconda環境の場合)

bash

1(anaconda3env)$ conda list

投稿2021/03/26 12:55

tain

総合スコア241

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

SKKKK

2021/04/02 05:27

conda list で以下のモジュールは見つかりました。 basemap 1.3.0 py38hee755e7_0 略 proj 6.2.1 haa6030c_0 略 matplotlib 3.3.2 0 from matplotlib.cbook import dedent に相当しそうなモジュールがないのが原因でしょうか。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.36%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問