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

如何解决第三方包调用Fiona嵌入GDAL时的导入问题?

问题:让依赖from osgeo import gdal的第三方包调用Fiona内置GDAL的方案

自2022年10月起,Fiona的wheel包已内置GDAL。但许多第三方包使用from osgeo import gdal调用GDAL时会失败。

复现示例

  1. 用Poetry创建Python 3.9.15(Linux环境)的虚拟环境:
poetry new dummy
cd dummy
poetry add geopandas richdem
  1. 运行以下脚本会抛出错误:
import richdem as rd
dem = rd.LoadGDAL("dummy")

Exception: richdem.LoadGDAL() requires GDAL.

该问题并非richdem独有——所有使用from osgeo import gdal的第三方包都会出现此问题,richdem的__init__.py中确实使用了该导入语句。

已尝试的无效方案

先导入Fiona(它会在启动时修补GDAL环境变量),但问题仍未解决。

额外注意事项

若单独安装与Fiona 1.8.22内置版本一致的GDAL 3.4.3,会出现以下情况:

  • 执行rd.LoadGDAL("dummy")会触发正确的RuntimeError: dummy: No such file or directory
  • 执行rd.LoadGDAL("a/real/tif_file.tif")会触发ModuleNotFoundError: No module named '_gdal_array'

这是另一个独立问题,且此时系统中存在两份相同版本的GDAL,显然不合理。

核心需求

如何让使用from osgeo import gdal的第三方包成功调用Fiona内置的GDAL?

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.11 17:55:22