質問をすることでしか得られない、回答やアドバイスがある。

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

新規登録して質問してみよう
ただいま回答率
85.48%
Matplotlib

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

Python 3.x

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

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

解決済

1回答

7194閲覧

basemapを使用するとKeyError: 'PROJ_LIB'というエラーが発生する

Nib04

総合スコア13

Matplotlib

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

Python 3.x

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

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

1クリップ

投稿2019/01/15 12:49

前提

pythonにて日本の海岸線をプロットしようとした際、
basemap利用時にエラーが発生しました。

環境はwindows10,Anaconda3で
pytho 3.7
basemap 1.2.0
basemap-data-hires 1.2.0
pyproj 1.9.5.1
また、pycharmを使用しています。

発生している問題・エラーメッセージ

KeyError Traceback (most recent call last) <ipython-input-1-4fc84cbcc854> in <module>() 1 import matplotlib.pyplot as plt ----> 2 from mpl_toolkits.basemap import Basemap ~\Anaconda3\lib\site-packages\mpl_toolkits\basemap\__init__.py in <module>() 153 154 # create dictionary that maps epsg codes to Basemap kwargs. --> 155 pyproj_datadir = os.environ['PROJ_LIB'] 156 epsgf = open(os.path.join(pyproj_datadir,'epsg')) 157 epsg_dict={} ~\Anaconda3\lib\os.py in __getitem__(self, key) 676 except KeyError: 677 # raise KeyError with the original key value --> 678 raise KeyError(key) from None 679 return self.decodevalue(value) 680 KeyError: 'PROJ_LIB'

該当のソースコード

python

1import matplotlib.pyplot as plt 2from mpl_toolkits.basemap import Basemap

試したこと

主には海外サイトで環境変数の設定やライブラリの更新など試みましたが、特に進展はありませんでした。
環境変数を設定した際はPROJ_LIBは出ず、また別のエラーが発生しました。

補足情報

plotlyにて日本地図(海岸線のみ)を三次元グラフのZ=0上にプロットしようとしているのですが、basemapを使用しない方法など知っている方がいれば教えて欲しいです。
日本の海岸線データ(shapefile)を用いてmatplotlibでプロットはできたのですが、plotlyでのプロットに苦戦しています。

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

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

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

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

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

guest

回答1

0

ベストアンサー

ネット上では微妙に異なるインストール方法が散見され、同様エラーから抜けられず手古摺りましたが、結局conda-forge/basemap-feedstockに記載された手順でimportまで動作確認できました。
以下手順です。

DOS

1>conda config --add channels conda-forge 2>conda create -n bm_env python=3.6 3>activate bm_env 4>conda install conda=4.5.12 <---(1) 5>conda install basemap

(1)KeyError 'PROJ_LIB' #30を読んだうえで必要だと判断して追加しています。

投稿2019/01/15 16:04

can110

総合スコア38266

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

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

Nib04

2019/01/21 09:53 編集

コマンドプロンプトを用い仮想環境上で python -c "from mpl_toolkits.basemap import Basemap"を実行してもエラーは出ないのですが、pycharmやjupyter notebook上で実行しようとするとエラーが出てしまいます
can110

2019/01/21 10:01

仮想環境にうまく切り替えられていないと思われます。
Nib04

2019/01/21 13:39

仮想環境の切り替えを調べ何度か試しましたがエラーが出てしまいます。 --------------------------------------------------------------------------- KeyError Traceback (most recent call last) <ipython-input-1-d9467465a3b6> in <module> ----> 1 from mpl_toolkits.basemap import Basemap ~\Anaconda3\envs\TEST\lib\site-packages\mpl_toolkits\basemap\__init__.py in <module> 153 154 # create dictionary that maps epsg codes to Basemap kwargs. --> 155 pyproj_datadir = os.environ['PROJ_LIB'] 156 epsgf = open(os.path.join(pyproj_datadir,'epsg')) 157 epsg_dict={} ~\Anaconda3\envs\TEST\lib\os.py in __getitem__(self, key) 667 except KeyError: 668 # raise KeyError with the original key value --> 669 raise KeyError(key) from None 670 return self.decodevalue(value) 671 KeyError: 'PROJ_LIB' ---------------------------------------------------------------------------
can110

2019/01/21 14:27

当方jupyter環境でも同様です。 PROJ_LIBにパスが通っていない感じですが、対処方法は現状不明です…
Nib04

2019/01/21 16:10

了解です。。 返信ありがとうございました
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問