使用Cartopy的几何必须是Point或LineString错误


问题内容

我正在尝试运行一个简单的Cartopy示例:

   import cartopy.crs as ccrs
   import matplotlib.pyplot as plt
   ax = plt.axes(projection=ccrs.PlateCarree())
   ax.coastlines()
   plt.show()

但我收到此错误:

几何必须是Point或LineString
python: geos_ts_c.cpp:4179: int GEOSCoordSeq_getSize_r(GEOSContextHandle_t, const geos::geom::CoordinateSequence*, unsigned int*): Assertion0!=
cs’failed`。

我使用miniconda3安装了Cartopy:conda install -c conda-forge cartopy
我也尝试通过pip(在虚拟环境中)安装Cartopy,但是出现了同样的错误。我的操作系统是Debian Buster。

任何想法?


问题答案:

问题是shape的版本错误,Cartopy不应该使用二进制包,而应该从源代码构建。这在这里这里解释。

所以我做了:

pip uninstall shapely
pip install shapely --no-binary shapely