Docker部署Airflow时无法安装Geopandas,报错找不到gdal-config
解决Docker中pip安装Geopandas时Fiona依赖gdal-config失败的问题
问题原因
Fiona(Geopandas的核心依赖)在编译安装阶段需要调用系统级的gdal-config工具获取GDAL库的编译参数,仅通过pip安装Python版GDAL包无法满足需求,必须先安装系统层面的GDAL开发依赖。
解决方案
1. 修改Dockerfile,添加系统依赖安装步骤
在执行pip install之前,先通过apt-get安装GDAL相关系统包,并设置环境变量让pip能找到GDAL头文件:
# 安装系统级GDAL开发依赖 RUN apt-get update && apt-get install -y --no-install-recommends \ gdal-bin \ libgdal-dev \ && rm -rf /var/lib/apt/lists/* # 设置环境变量,指定GDAL头文件路径 ENV CPLUS_INCLUDE_PATH=/usr/include/gdal ENV C_INCLUDE_PATH=/usr/include/gdal # 安装Python依赖 COPY requirements.txt . RUN pip install --user -r requirements.txt
2. 同步requirements.txt中的GDAL版本
系统安装的GDAL版本必须和pip安装的GDAL版本匹配,否则会出现兼容性问题:
- 先确认系统安装的GDAL版本:可在Dockerfile中临时添加
RUN gdal-config --version查看,或查阅基础镜像的GDAL版本信息 - 在requirements.txt中添加对应版本的GDAL(放在
geopandas之前),例如系统装的是2.4.4,则添加:
GDAL==2.4.4
3. 重新构建镜像
执行docker build命令重新构建容器,此时Fiona即可正常完成编译安装。
内容的提问来源于stack exchange,提问作者Govind Mishra
相关产品推荐
相关产品推荐

