在Debian上安装GDAL/OGR Python API

在Debian上安装GDAL/OGR Python API,python,python-3.6,gdal,ogr,Python,Python 3.6,Gdal,Ogr,我试图安装Python GDAL/OGR绑定,以便直接从Docker Python:3.6-stretch映像上的Python解释器访问 我的Dockerfile如下所示: 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 \

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

我的Dockerfile如下所示:

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
Dockerfile安装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'
>>从osgeo导入gdal
回溯(最近一次呼叫最后一次):
文件“”,第1行,在
ModuleNotFoundError:没有名为“osgeo”的模块

如何正确安装必要的库?

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

whereis python3

您已经安装了python3pip包,因此在/usr/bin/python3中的主python3中有了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"
$gdalinfo--版本
GDAL 2.1.3,2017/20/01发布
$pip安装“pygda>=2.1.2,