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