我已经安装了底图包。它在Anaconda jupyter环境中的Python 2.7环境中运行良好。
我想安装cartopy
并学习此用于地理空间数据映射的软件包。
conda install -c conda-forge gdal geos pyproj shapely cartopy
软件包似乎已成功安装。
但是,当我想导入此包时,错误显示如下:
import cartopy.crs as ccrs
dlopen(/Users/HYF/anaconda/lib/python2.7/site-packages/cartopy/trace.so, 2): Library not loaded: @rpath/libgeos_c.1.dylib
Referenced from: /Users/HYF/anaconda/lib/python2.7/site-packages/cartopy/trace.so
Reason: Incompatible library version: trace.so requires version 12.0.0 or later, but libgeos_c.dylib provides version 11.0.0
我读过一些网站,其中有些人也遇到了这个问题并寻求帮助。该错误应与不同包依赖项之间的冲突有关。
因此,我通过以下方式在conda
通道中重新安装了底图包:
conda install -c conda-forge basemap
然后,basemap
包和cartopy
包都无法导入。
from mpl_toolkits.basemap import Basemap
dlopen(/Users/HYF/anaconda/lib/python2.7/site-packages/_geoslib.so, 2): Library not loaded: @rpath/libgeos_c.1.dylib
Referenced from: /Users/HYF/anaconda/lib/python2.7/site-packages/_geoslib.so
Reason: Incompatible library version: _geoslib.so requires version 12.0.0 or later, but libgeos_c.dylib provides version 11.0.0
我也尝试conda install -c conda-forge basemap cartopy
引用链接,但问题仍然存在。
似乎basmap包反对较旧的geos库(版本3.3.x),而cartopy基于geos 3.4.x。
附言
抱歉解释不清楚,我想解决安装底图和卡托米而没有任何错误的问题
我已经按照以下顺序解决了这个问题:
## Uninstall cartopy and shapely, keep the basemap
conda uninstall cartopy
conda uninstall shapely
## upgrade the gdal using brew method
brew upgrade gdal
## install shapely cartopy using pip
pip install shapely cartopy --no-binary shapely --no-binary cartopy
## reinstall shapely using conda
conda install shapely
我通过重新安装libgdal解决了这个问题:
conda install libdgal