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

GCP Ubuntu环境Docker部署Django项目遇gdal-config缺失错误求助

解决Docker容器中GDAL安装时的gdal-config找不到问题

针对你在GCP Ubuntu 20.04.5 LTS环境下,Docker部署Django 3.2 REST API时遇到的gdal_config_error: [Errno 2] No such file or directory: 'gdal-config'问题,给出以下几个可行的解决方向:

1. 确保容器内libgdal-dev完整安装且环境变量配置正确

Ubuntu 20.04中gdal-config默认路径为/usr/bin/gdal-config,首先要确认Dockerfile中libgdal-dev安装过程无异常:

  • 安装前必须更新apt源,避免因源缓存问题导致安装失败:
    RUN apt-get update && apt-get install -y libgdal-dev gcc g++ && rm -rf /var/lib/apt/lists/*
    
  • 强制验证gdal-config是否存在,可在Dockerfile中加入:
    RUN which gdal-config  # 执行后应输出/usr/bin/gdal-config
    
  • 确保环境变量覆盖GDAL的头文件路径并包含gdal-config所在目录:
    ENV CPLUS_INCLUDE_PATH=/usr/include/gdal
    ENV C_INCLUDE_PATH=/usr/include/gdal
    ENV PATH="/usr/bin:$PATH"
    

2. 为GDAL安装指定编译参数

pip安装GDAL时需要依赖系统级的GDAL库文件和头文件,直接指定编译参数可以解决路径匹配问题:
将requirements.txt中的GDAL==3.3.2替换为:

GDAL==3.3.2 --global-option=build_ext --global-option="-I/usr/include/gdal" --global-option="-L/usr/lib/x86_64-linux-gnu"

或者在Dockerfile中单独执行GDAL的安装命令(优先于安装整个requirements.txt):

RUN pip install GDAL==3.3.2 --global-option=build_ext --global-option="-I/usr/include/gdal" --global-option="-L/usr/lib/x86_64-linux-gnu"
RUN pip install --no-cache-dir -r requirements.txt  # 此时requirements.txt中可移除GDAL条目

3. 对齐系统libgdal-dev与pip安装的GDAL版本

Ubuntu 20.04默认源中的libgdal-dev版本为3.0.4,若你本地环境是3.3.2,说明本地添加了第三方PPA,容器内也需要同步这个源来获取对应版本的依赖:

RUN apt-get update && apt-get install -y software-properties-common
RUN add-apt-repository ppa:ubuntugis/ppa && apt-get update
RUN apt-get install -y libgdal-dev=3.3.2+dfsg-2~focal0 gcc g++

安装完对应版本的libgdal-dev后,再安装GDAL==3.3.2即可避免版本不兼容导致的路径问题。

4. 排查容器内的实际环境

若以上方法仍无效,可以临时修改Dockerfile的CMD为bash,启动容器后手动调试:

CMD ["bash"]

启动容器后执行以下命令定位问题:

gdal-config --version  # 确认系统GDAL版本
echo $PATH  # 检查gdal-config所在目录是否在PATH中
pip install GDAL==3.3.2 -v  # 查看详细安装日志,定位具体错误点

附你提供的相关文件参考

错误日志

ERROR: Command errored out with exit status 1: python setup.py egg_info Check the logs for full command output.

Dockerfile

FROM python:3.8-slim

WORKDIR /app

RUN apt-get update && apt-get install -y \
    libgdal-dev \
    gcc \
    && rm -rf /var/lib/apt/lists/*

ENV CPLUS_INCLUDE_PATH=/usr/include/gdal
ENV C_INCLUDE_PATH=/usr/include/gdal

COPY requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt

COPY . .

CMD ["gunicorn", "config.wsgi:application", "--bind", "0.0.0.0:8000"]

requirements.txt

Django==3.2.16
djangorestframework==3.13.1
GDAL==3.3.2
psycopg2-binary==2.9.3
celery==5.2.7
redis==4.3.4

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.05 07:40:29