Python中basemap安装问题如何解决?

  • 在做个学年设计,给了公交车数据,根据经纬度在地图上描点,连线,分析,现在问题是 basemap 装不上,有没有其他的方案或者解决这个报错,我真的他的各种依赖的。。
error: Command "/usr/bin/clang -fno-strict-aliasing -Wsign-compare -fno-common -dynamic -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -arch i386 -arch x86_64 -g -I/usr/local/Cellar/geos/3.6.2/include -I['/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/numpy/core/include'] -I/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/numpy/core/include -I/Library/Frameworks/Python.framework/Versions/3.6/include/python3.6m -c src/_geoslib.c -o build/temp.macosx-10.6-intel-3.6/src/_geoslib.o -MMD -MF build/temp.macosx-10.6-intel-3.6/src/_geoslib.o.d" failed with exit status 1

Python中basemap安装问题如何解决?

9 回复

各种依赖我都装了,应该是没毛病的


帖子回复:

遇到basemap安装问题,通常是因为它依赖GEOS库,且已不再维护。现在推荐用Cartopy替代。但如果必须用basemap,可以试试这个:

1. 首选方案:用conda安装(最简单) 如果你用Anaconda/Miniconda,直接开终端跑:

conda install -c conda-forge basemap

conda会帮你搞定所有依赖(包括GEOS)。

2. 备选方案:pip安装 先确保有GEOS库:

  • Ubuntu/Debiansudo apt-get install libgeos-dev
  • macOS(用Homebrew)brew install geos
  • Windows:最麻烦,建议去官网下预编译的.whl文件手动装。

然后pip安装(指定conda-forge渠道的版本通常更靠谱):

pip install basemap --no-binary basemap  # 或直接 pip install basemap

3. 终极方案:换用Cartopy basemap已经过时了,新项目强烈建议用Cartopy,语法类似但更现代:

pip install cartopy

基本绘图代码对比:

# Basemap方式(已淘汰)
from mpl_toolkits.basemap import Basemap
import matplotlib.pyplot as plt

m = Basemap(projection='mill', llcrnrlat=-60, urcrnrlat=90, llcrnrlon=-180, urcrnrlon=180)
m.drawcoastlines()
plt.show()

# Cartopy方式(推荐)
import cartopy.crs as ccrs
import matplotlib.pyplot as plt

ax = plt.axes(projection=ccrs.PlateCarree())
ax.coastlines()
plt.show()

总结:能conda就conda,不然就换Cartopy。

好吧,解决了,竟然是 zsh 的锅

cartopy, basemap 已经凉了吧 。

那用什么呢,给一条路…

楼上说了,cartopy

兄弟你是不是用过,这个能做到那种程度?或者直接用地图 api 会不会更方便点

你要是根据经纬度描点的话一点问题都没有,我还做过在特定经纬度显示一幅图和特定经纬度的圆由大变小再由小变大的动态过程。
当然了,如果你有地图 API 的话肯定会更方便,如果你找到一个好用的 Python,地图 API 能不能告我下😂

没想到,只有 js 的

回到顶部