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

Fiona无法识别.shp文件 GitHub Actions CI测试报错问题咨询

问题排查与解决方案

根因定位

该报错核心原因是CI环境中Fiona依赖的GDAL运行时驱动异常,或Fiona编译时链接的GDAL版本与系统安装的GDAL版本不匹配,导致无法识别shp文件格式。

排查步骤

  • 验证GDAL驱动完整性
    在CI配置的Install dependencies步骤末尾添加如下命令,确认ESRI Shapefile驱动是否正常加载:
ogrinfo --formats | grep -i "ESRI Shapefile"

若无输出,说明安装的GDAL包缺少shp格式支持,大概率是ubuntugis不稳定源的编译问题。

  • 验证Fiona链接的GDAL版本一致性
    在测试步骤前添加如下命令,检查Fiona依赖的GDAL版本是否和系统安装的3.2.3匹配:
python -c "import fiona; print(fiona.__gdal_version__)"

若输出版本不等于3.2.3,说明Fiona是从预编译二进制包安装,自带的GDAL版本和系统版本冲突。

修复方案

调整CI配置的依赖安装逻辑,具体修改如下:

  1. 调整GIS依赖安装顺序,先添加ubuntugis源再安装依赖,避免版本被覆盖:
python -m pip install --upgrade pip
# 先添加源再安装所有GIS依赖
sudo apt-add-repository ppa:ubuntugis/ubuntugis-unstable -y
sudo apt-get update
sudo apt-get install libproj-dev proj-data proj-bin libgeos-dev gdal-bin libgdal-dev -y
  1. 强制Fiona从源码编译,匹配系统GDAL版本:
    在pip安装GDAL之前,添加参数强制Fiona本地编译,避免预编译包的内置GDAL冲突:
pip install --no-binary fiona fiona
pip install GDAL==3.2.3
pip install flake8 pytest Cython numpy pyproj pygeos
if [ -f requirements-linux.txt ]; then pip install -r requirements-linux.txt; fi
  1. 可选:如果不需要最新GDAL特性,直接删除ubuntugis源相关配置,使用Ubuntu官方源自带的GDAL版本,稳定性更高。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 11:27:03