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

Ubuntu hirsute/impish下pip显示gdal已安装却无法导入问题

Ubuntu高版本(hirsute/impish)pip安装GDAL成功但导入失败问题

问题现象

  • 在ubuntu:focal版本上可用的Python GDAL安装步骤,在ubuntu:hirsute、ubuntu:impish版本执行时,pip会提示GDAL安装成功,但导入时会抛出ModuleNotFoundError,focal版本无此问题。
  • 基于ubuntu:hirsute构建Docker镜像安装GDAL时,安装过程无报错,pip也识别到GDAL已安装,执行Python代码导入GDAL时抛出如下错误:
=> ERROR [6/6] RUN python3 /src/test_gdal.py                                                                          0.3s
------
 > [6/6] RUN python3 /src/test_gdal.py:
#10 0.305 Traceback (most recent call last):
#10 0.305   File "/src/test_gdal.py", line 1, in <module>
#10 0.305     import gdal
#10 0.305 ModuleNotFoundError: No module named 'gdal'

复现方法

将以下两个文件放在同一目录下,在目录内执行docker build .命令即可复现问题:

  1. test_gdal.py
import gdal
  1. Dockerfile
FROM ubuntu:hirsute

SHELL ["/bin/bash", "-c"]

RUN apt-get update -y  && \
    apt-get install -y  python3.9 && \
    apt-get install -y pip

RUN apt-get update && \
    apt-get install -y gdal-bin && \
    apt-get install -y libgdal-dev

RUN pip install gdal

COPY . /src

RUN python3 /src/test_gdal.py

解决方案

根因

Ubuntu 21.04(hirsute)、21.10(impish)官方源内置的GDAL版本为3.2+,该版本开始Python绑定的官方导入规则发生变更,同时pip默认安装的GDAL包路径与系统libgdal-dev的安装路径不匹配,导致模块无法被Python识别。

修复方式

方案1(推荐):调整导入语句

遵循GDAL 3.0+的官方导入规范,将test_gdal.py中的导入代码修改为:

from osgeo import gdal

方案2:安装与系统版本匹配的GDAL包

修改Dockerfile中的pip安装步骤,指定安装和系统libgdal版本一致的Python包:

RUN export GDAL_VERSION=$(gdal-config --version) && \
    pip install gdal==${GDAL_VERSION}

方案3:兼容旧版导入写法

如果必须保留import gdal的旧写法,额外安装兼容包即可:

RUN pip install gdal-const

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 20:54:03