在 Debian 上安装 GDAL/OGR Python API

Install GDAL/OGR Python API on Debian

我正在尝试安装 Python GDAL/OGR 绑定,以便在 Docker python:3.6-stretch 图像上直接从 Python 解释器访问。

我的 Docker 文件看起来像这样:

FROM python:3.6-stretch

ENV PYTHONUNBUFFERED 1

ENV LANG=C.UTF-8 LC_ALL=C.UTF-8

RUN apt-get update && apt-get install -y \
  binutils \
  libproj-dev \
  gdal-bin \
  libgdal-dev \
  python3-gdal \
  python3-pip \
  python-numpy \
  python-dev \
  vim

COPY . /app

RUN pip3 install --no-cache-dir -r /app/requirements.txt \
  && rm -rf /requirements.txt

WORKDIR /app

Docker文件安装当前稳定版本的 GDAL 和 python3-gdal,即 2.1.2。

从 Python 解释器导入 osgeo 给我一个错误:

>>> from osgeo import gdal
Traceback (most recent call last):
 File "<stdin>", line 1, in <module>
ModuleNotFoundError: No module named 'osgeo'

如何正确安装必要的库?

检查您是否使用了正确的 python 3 解释器。您可以在linux系统中调用:

whereis python3

您已经安装了 python3-pip 包,因此您在 /usr/bin/python3 中的主 python 3 中安装了 osgeo。在其他 python 3 个位置,osgeo 可能不可用。

我通过 Python PIP pygdal 包安装解决了这个问题。首先你需要检查机器上安装的Gdal版本,并安装正确的pygdal。

$ gdalinfo --version
GDAL 2.1.3, released 2017/20/01
$ pip install "pygda>=2.1.2,<2.1.3"