web-dev-qa-db-ja.com

Anaconda Jupyterノートブックを使用したベースマップライブラリ-KeyError:PROJ_LIB

BasemapライブラリをインストールしてJupyter Notebookにインポートしようとしていますが、次のエラーが返されます。

KeyError: 'PROJ_LIB'

オンラインで調査したところ、BasemapをAnacondaの別の環境にインストールすることを理解しています。新しい環境を作成し、Basemap(および他のすべての関連ライブラリ)をインストールした後、環境をアクティブにしました。しかし、ベースマップをインポートするとき、同じKeyErrorを受け取ります。

MacOSターミナルで行ったことは次のとおりです。

conda create --name Py3.6 python=3.6 basemap
source activate Py3.6
conda upgrade proj4
env | grep -i proj
conda update --channel conda-forge proj4

次に、Jupyter Notebookで次を実行します。

from mpl_toolkits.basemap import Basemap

なぜこれがKeyErrorになるのか誰にも教えてもらえますか?

12
RubenB

ノートブックを起動する前に、またはpython with os.environ['PROJ_LIB'] = '<path_to_anaconda>/share/proj'

参照 PyCharmのベースマップインポートエラー-KeyError: 'PROJ_LIB'

11
RandyP

Windows 10コマンドライン:最初にepsgファイルが保存されているディレクトリを見つけます。

where /r "c:\Users\username" epsg.*

...

c:\ Users\username\AppData\Local\conda\conda\envs\envname\Library\share\epsg

...

次に、コマンドラインで:

activate envname

SET PROJ_LIB=c:\Users\username\AppData\Local\conda\conda\envs\envname\Library\share

(パスの末尾のスペースに先頭がないことを確認してください!)そして、

jupyter notebook

または、これをjupyterノートブックに追加します(john edの提案どおり):

import os

os.environ['PROJ_LIB'] = r'c:\Users\username\AppData\Local\conda\conda\envs\envname\Library\share'
7
Pavlo

この問題は、「epsg」とPROJ_LIBのファイルの場所が最近のバージョンのpythonで変更されたために発生しますが、Basemapのinit。pyの更新を忘れていました。 anacondaを使用してpythonをインストールした場合、これはespgファイルの可能な場所です:C:\ Users(xxxx)\ AppData\Local\Continuum\anaconda3\pkgs\proj4-5.1.0 -hfa6e2cd_1\Library\shareしたがって、スパイダーまたは使用しているフィールドのコードの先頭にこのパスを追加する必要があります。

輸入OS

os.environ ['PROJ_LIB'] = r'C:\ Users(xxxx)\ AppData\Local\Continuum\anaconda3\pkgs\proj4-5.1.0-hfa6e2cd_1\Library\share '

mpl_toolkits.basemapからインポートベースマップ

2
john ed