Docker容器内安装GDAL(避坑)

亲测以下方法中的包适用于python3.5

一,安装sqlite

docker容器内使用apt-get install会报unable to locate package错误,需要先更新

更新命令:apt-get update

安装命令:apt-get install sqlite

二,安装prj6

安装:wget apt-get install wget

下载:wget http://download.osgeo.org/proj/proj-6.3.1.zip

解压:unzip proj-6.3.1.zip

目录:cd proj-6.3.1

生成makefile:./configure

编译:make

安装:make install

更新环境变量:ldconfig

测试是否安装成功:proj --version

在生成makefile这一步有可能会报一个找不到splite的错误,出现这个问题并不是splite没装好,而是服务器没有告诉prj6 splite已经装好了。在你所安装的docker服务的文件夹下的usr文件夹有pkg-config文件夹,路径有可能是usr/bin/pkg-config或者usr/local/bin/pkg-config,该文件夹下存放了许多*.pc文件,这些pc文件就是告诉docker安装了哪些依赖,使用find ./ -name “*.pc” 查看有没有splite的pc文件,如果没有的话,需要拷贝进去。我是从已经安装的环境里面拿的。
如果已经有这个文件,可以查看一下PKG_CONFIG_PATH变量,有可能设置的pkg-config路径和pc文件所在路径不一致。
export PKG_CONFIG=/usr/local/bin/pkg-config
export PKG_CONFIG_PATH=/usr/share/pkgconfig:/usr/lib/pkgconfig

详情参考:https://blog.csdn.net/langeldep/article/details/6804331

三、安装gdal

下载:wget http://download.osgeo.org/gdal/3.0.4/gdal-3.0.4.tar.gz

解压:tar -zxvf gdal-3.0.4.tar.gz

目录:cd gdal-3.0.4

生成makefile:./configure

编译:make

安装:make install

ldconfig

测试是否安装成功:gdal --version

安装完了之后,已经安装成功但是运行import gdal时还是会出错,显示没有这个模块。这个问题可能是你安装的路径没有在pythonpath下,在对应的包下执行swig/python然后python setup install 就安装到python安装目录下的site-pakage里面了。

流程参考:https://blog.csdn.net/wjdhnn/article/details/105974142

你可能感兴趣的:(docker)