Basemap是pyhton绘制地图相关图形非常好用的库,通常可以简单通过conda install basemap 直接安装,因为basemap是基于geos的,依赖于pyproj,正常需要先安装geos,pyproj,但采用conda的安装方式,它会把basemap所需的依赖都安装上,同时解决了版本兼容性问题。
但许多用户在导入basemap时,出现KeyError: ‘PROJ_LIB’的报错,本文分析了原因,并基于Windows和MAC OS系统给出解决方案。
![56a5398d2b5bd0c451857282cffed661.png](https://i-blog.csdnimg.cn/blog_migrate/b9679318a8625315f2f22bb849e11100.jpeg)
导入basemap,出现KeyError: ‘PROJ_LIB’
原因:
因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'))
解决办法:
添加epsg文件所在的路径到系统环境变量,取名为:PROJ_LIB
Windows:
- 在Anaconda安装路径下搜索epsg。
- 将epsg所在路径添加到系统环境变量(我的路径是:D:Anaconda3Libraryshare)
变量名:PROJ_LIB
变量值:D:Anaconda3Libraryshare - 添加环境变量成功后,重启一下电脑,就能成功导入basemap,验证成功。
Mac OS:
- 把Macintosh HD ▸ 用户 ▸ xxxxx ▸ anaconda3 ▸ pkgs ▸ proj4-5.2.0-h6de7cb9_1006 ▸ share▸ proj 合并复制到Macintosh HD ▸ 用户 ▸ xxxxx ▸ anaconda3▸ share中。
- 在语句前面加上:
import osos.environ['PROJ_LIB'] = r'/Users/xxxxx/anaconda3/share/proj'
重新运行程序:
![56d30bf4974237f56e4c12df94695c4a.png](https://i-blog.csdnimg.cn/blog_migrate/7715175903f6d66c69c6d9a25a78c34f.jpeg)
参考文章:https://blog.csdn.net/weixin_45589713/article/details/104111271
如果你想学习数据分析而没有思路,没有资源,私信我或关注“数据科学与商业实践”,陈述你的问题,看到后会给出答复。