我正在努力从源代码构建 gdal 功能分支。我的环境是 docker,带有 ubuntu 基础镜像。
它构建得很好,但是调用
gdal2tiles.py
会引发臭名昭著的
ModuleNotFoundError: No module named 'osgeo'
这些是我在 docker 容器中的构建步骤:
RUN cmake -DBUILD_PYTHON_BINDINGS=ON -DCMAKE_BUILD_TYPE=Release ..
RUN cmake --build .
RUN cmake --build . --target install
显然我缺少一些能够在 python 中导入
osgeo
的东西。但这是什么?
我成功了。在我的例子中,GDAL 安装在 /usr/local 前缀下,并且 Python 默认情况下不会尝试在那里查找它。两种解决方案:
定义
PYTHONPATH=/usr/local/lib/python3/dist-packages
修改第一个 cmake 调用以将
CMAKE_INSTALL_PREFIX
设置为 /usr
:
cmake -DBUILD_PYTHON_BINDINGS=ON -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr ..