[Python]エラーKeyError:PROJ_LIBソリューション



Error Keyerror



1.ベースマップをインストールします

ベースマップはgeosに基づいているため、最初にgeosをインストールする必要があります。また、ベースマップはpyprojに依存しているため、pyprojをインストールする必要があります。
condaを使用してここにインストールすると、ベースマップに必要なすべての依存関係がインストールされ、バージョンの互換性の問題も解決されます。

conda install basemap

2.ベースマップのインポート、KeyError:「PROJ_LIB」が表示されます

>>>from mpl_toolkits.basemap import Basemap Traceback (most recent call last): File '', line 1, in <module> File 'D:Anaconda3libsite-packagesmpl_toolkitsasemap\__init__.py', line 155, in <module> pyproj_datadir = os.environ['PROJ_LIB'] File 'D:Anaconda3libos.py', line 669, in __getitem__ raise KeyError(key) from None KeyError: 'PROJ_LIB' >>>

3.解決策

3.1理由分析:

Pythonを最新バージョン3.6にアップグレードしたとき、Anacondaは環境変数PROJ_LIBを自動的に構成せず、ベースマップの__init__。pyファイルのepsgfの設定コードは次のとおりであるため、エラーが報告されます。



# create dictionary that maps epsg codes to Basemap kwargs. pyproj_datadir = os.environ['PROJ_LIB'] epsgf = open(os.path.join(pyproj_datadir,'epsg'))

3.2解決策

epsgファイルのパスをシステム環境変数に追加し、PROJ_LIBという名前を付けます。

epsgファイルのパスを見つける方法は?

3.2.1Anacondaインストールパスでepsgを検索します。スクリーンショットは次のとおりです。



画像

システム環境変数を追加する

3.2.2 epsgが配置されているパスをシステム環境変数に追加します(私のパスはD: Anaconda3 Library shareです)。スクリーンショットは次のとおりです。
変数名:PROJ_LIB
変数値:D: Anaconda3 Library share
画像
3.2.3環境変数の追加に成功したら、コンピューターを再起動してベースマップを正常にインポートし、検証に成功します。

C:Usersqidian>python Python 3.6.4 |Anaconda, Inc.| (default, Jan 16 2018, 10:22:32) [MSC v.1900 64 bi t (AMD64)] on win32 Type 'help', 'copyright', 'credits' or 'license' for more information. >>> from mpl_toolkits.basemap import Basemap >>> >>>