Mac OS系统Python3.8+Matplotlib3.3.3安装Cartopy问题咨询
Cartopy安装报错及环境配置解决方案
你遇到的proj_api.h文件缺失报错,核心原因是该头文件仅存在于PROJ 4及更早版本中,PROJ 5之后的版本已经废弃该头文件改用新API,brew默认安装的高版本PROJ不会携带该文件。
方案1:保持当前pip+brew环境,使用兼容版本组合
这套方案不需要更换包管理器,实测在Python 3.8 + Matplotlib 3.3.3环境下可稳定运行:
- 依赖版本组合:PROJ 4.9.3 + Cartopy 0.18.0,这是最后一套兼容
proj_api.h的官方正式版本组合 - 安装步骤:
- 安装指定版本PROJ:
brew install proj@4.9.3 - 临时添加PROJ路径到环境变量(终端执行以下命令即可):
export LDFLAGS="-L/usr/local/opt/proj@4.9.3/lib" export CPPFLAGS="-I/usr/local/opt/proj@4.9.3/include" export PKG_CONFIG_PATH="/usr/local/opt/proj@4.9.3/lib/pkgconfig"- 安装指定版本Cartopy:
pip install cartopy==0.18.0
- 安装指定版本PROJ:
方案2:直接使用Anaconda安装
如果不想手动处理版本匹配问题,Anaconda是更省心的选择:
- conda会自动匹配Cartopy与PROJ、GEOS等依赖的版本,完全不会出现头文件缺失、依赖冲突类问题
- 安装命令仅需一行:
conda install cartopy
选型建议
- 如果只是临时使用Cartopy完成单一项目,选方案1即可,无需调整现有环境
- 如果后续长期从事地理空间数据开发,会用到GDAL、Fiona等同类依赖库,直接选方案2可节省大量依赖调试时间,没有必要死磕pip+brew的组合
内容的提问来源于stack exchange,提问作者braulio
相关产品推荐
相关产品推荐

