You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

新MacBook安装Cartopy后导入报错_GEOSCoordSeq_create_r未找到求解决

问题描述

在新MacBook上部署旧Mac可正常运行的代码时,导入Cartopy模块出现以下错误:

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/site-packages/cartopy/__init__.py", line 107, in <module>
    import cartopy.crs  # noqa: E402  module-level imports
  File "/Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/site-packages/cartopy/crs.py", line 27, in <module>
    import cartopy.trace
ImportError: dlopen(/Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/site-packages/cartopy/trace.cpython-310-darwin.so, 0x0002): symbol not found in flat namespace '_GEOSCoordSeq_create_r'

已尝试以下方法但未解决:

  • 通过Homebrew降级proj至7版本后重装Cartopy
  • 重装GEOS后重装Cartopy
  • 安装2.x以下版本Shapely后重装Cartopy
  • 通过conda install -c conda-forge cartopy安装的Cartopy可导入,但仅包含string包基础函数,无Cartopy核心功能

当前环境版本:cartopy 0.21.0、shapely 1.8.5.post1、geopandas 0.11.1、geos 3.11.0、proj 9.1.0

解决方案

方案1:创建干净conda环境,锁定兼容依赖版本

Cartopy 0.21.0与GEOS 3.11.0存在兼容性冲突,建议使用经过验证的版本组合:

  1. 删除现有问题环境(可选):
conda remove --name your_env --all
  1. 创建新环境并安装指定版本依赖:
conda create -n cartopy_env python=3.10
conda activate cartopy_env
conda install -c conda-forge cartopy=0.21.0 geos=3.10.1 proj=8.2.1 shapely=1.8.0 geopandas=0.11.1

方案2:Homebrew安装兼容依赖后编译Cartopy

确保系统级依赖与Python包版本匹配:

  1. 卸载现有冲突的Homebrew依赖:
brew uninstall --force geos proj
  1. 安装兼容版本的GEOS和PROJ:
brew install geos@3.10 proj@8
  1. 配置环境变量,让pip能识别依赖路径:
export PATH="/usr/local/opt/geos@3.10/bin:$PATH"
export PATH="/usr/local/opt/proj@8/bin:$PATH"
export LDFLAGS="-L/usr/local/opt/geos@3.10/lib -L/usr/local/opt/proj@8/lib"
export CPPFLAGS="-I/usr/local/opt/geos@3.10/include -I/usr/local/opt/proj@8/include"
  1. 卸载现有Cartopy后重新编译安装:
pip uninstall -y cartopy
pip install cartopy==0.21.0 --no-binary :all:

方案3:修复动态链接库路径

如果上述方法无效,强制指定Python加载正确的GEOS库:

  1. 查看兼容GEOS库的安装路径:
brew --prefix geos@3.10
  1. 将路径添加到动态链接库环境变量:
export DYLD_LIBRARY_PATH="$(brew --prefix geos@3.10)/lib:$DYLD_LIBRARY_PATH"
  1. 重启Python终端,尝试导入Cartopy。

内容的提问来源于stack exchange,提问作者Niall

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.15 21:20:37