【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 "<stdin>", 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,截图如下:

在这里插入图片描述

添加系统环境变量

3.2.2 将epsg所在路径添加到系统环境变量(我的路径是:D:\Anaconda3\Library\share),截图如下
变量名:PROJ_LIB
变量值:D:\Anaconda3\Library\share
在这里插入图片描述
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
>>>
>>>

  • 17
    点赞
  • 40
    收藏
    觉得还不错? 一键收藏
  • 11
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值