繁体   English   中英

即使 pip 说它已安装,Python 也无法导入 gdal - ubuntu hirsute & impish specific

[英]Python can't import gdal even though pip says it's installed - ubuntu hirsute & impish specific

更新澄清:在 ubuntu:focal 上为 Python 安装 gdal 的步骤似乎适用于 ubuntu:hirsute 和 ubuntu:impish,pip 报告已安装 gdal。 但是尝试导入它只会在多毛和顽皮上给出 ModuleNotFoundError ,而不是焦点。

我花了一段时间试图弄清楚如何在基于ubuntu:hirsute的 docker 映像中安装 gdal。 我到达了安装看起来成功的地方,并且 pip 认为 gdal 已安装。 如果我从ubuntu:hirsute降级到ubuntu:focal ,则以下示例运行正确,但是对于 hirsute 或 impish 它给出:

 => 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 . 从那个目录。

test_gdal.py:

import gdal

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

既然它救了我,我将继续添加罗伯特戴维的评论作为答案:

https://gdal.org/api/python.html#usage显示,从 GDAL 3.1 开始,gdal 等现在是 osgeo 中的包,因此您不会使用

# Outdated    
import gdal

但与

from osgeo import gdal

不知道它是否解决了你的问题,我在 Windows 上——操作系统可能并不重要,只安装了 gdal 的版本? 但是,由于这可以回答您问题的主要思想,因此将为碰巧遇到相同问题的其他人提供一个选项,这些人碰巧使用带有直接导入 gdal 命令的旧代码。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM