在 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"
我正在尝试安装 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"