【python】报错KeyError: PROJ_LIB的解决办法

1、 安装basemap

因为basemap是基于geos的,需要先安装geos,又因为basemap依赖于pyproj,所以需要安装pyproj
这里使用conda方式安装,它会把basemap所需的依赖都安装上,还解决了版本兼容性问题。

conda install basemap

2、导入basemap,出现KeyError: ‘PROJ_LIB’

>>>from mpl_toolkits.basemap import Basemap

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

3、解决办法

3.1原因分析:

因python升级到最新版本3.6时,Anaconda没有自动配置环境变量PROJ_LIB,而basemap的__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.1 在Anaconda安装路径下搜索epsg,截图如下:

【python】报错KeyError: PROJ_LIB的解决办法_第1张图片

添加系统环境变量

3.2.2 将epsg所在路径添加到系统环境变量(我的路径是:D:\Anaconda3\Library\share),截图如下
变量名:PROJ_LIB
变量值:D:\Anaconda3\Library\share
【python】报错KeyError: PROJ_LIB的解决办法_第2张图片
3.2.3 添加环境变量成功后,重启一下电脑,就能成功导入basemap,验证成功

C:\Users\qidian>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
>>>
>>>

你可能感兴趣的:(#,python基础,python,anaconda)