包映射与底图和cartopy冲突

时间:2018-01-11 06:11:22

标签: python anaconda conda matplotlib-basemap cartopy

我已经安装了底图包。它在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频道中重新安装了Basemap包。

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引用link,但问题仍然存在。

似乎basmap包与较旧的地理库(版本3.3.x)相反,而cartopy基于地理3.4.x.

PS

很抱歉,由于解释不清楚,我想解决安装Basemap和cartopy而没有任何错误的问题

2 个答案:

答案 0 :(得分:0)

我按照以下顺序解决了这个问题:

## 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 

答案 1 :(得分:0)

我通过重新安装libgdal解决了这个问题:

conda install libdgal