参考
https://zhuanlan.zhihu.com/p/517684150
https://blog.youkuaiyun.com/weishaodong/article/details/123310029
由于需要使用到python的 gdal 3.4.2
版本, 且python的gdal依赖对应版本的 libgdal-dev
, 安装过程较为复杂, 故记录下来.
正常安装流程
先安装libgdal-dev
sudo apt-get install libgdal-dev
添加环境变量
export CPLUS_INCLUDE_PATH=/usr/include/gdal
export C_INCLUDE_PATH=/usr/include/gdal
记录版本
gdal-config --version
我这里的版本是3.0.4, 因此只能使用python安装3.0.4的gdal
pip install gdal==3.0.4
如果不先安装对应版本的libgdal-dev
, 这里会报很长一段错误
# 在python下运行
from osgeo import gdal
gdal.__version__ # 3.0.4
但是这样只能安装3.0.4的版本, 想要更高级的版本就需要使用其他办法了, 因为目前为止(2022年9月15日)apt里最高只有3.0.4版本的libgdal-dev
手动安装特定版本
安装 libgdal-dev
该部分主要参考
https://blog.youkuaiyun.com/weishaodong/article/details/123310029
在github下载对应版本: https://github.com/OSGeo/gdal/releases
我这下载的是3.4.2的
解压
tar -zxvf gdal-3.4.2.tar.gz
cd gdal-3.4.2
编译
./configure
make -j4
sudo make install
- 若
./configure
报错configure: error: PROJ 6 symbols not found
则安装最新的libproj-dev
。 - 若编译过程中还有大量库缺失的错误, 建议先用apt安装
libgdal-dev
, 待其将所需依赖安装好后, 卸载libgdal-dev
再编译。
做一些必要的链接
sudo ln -s /usr/local/lib/libgdal.so.30.0.2 /usr/lib/libgdal.so
sudo ln -s /usr/local/lib/libgdal.so.30 /usr/lib/libgdal.so.30
不做这一步虽然能安装python对应版本的gdal, 但是后续会报错, 而且该错误较难回溯:
ImportError: libgdal.so.30: cannot open shared object file: No such file or directory
检查版本
gdalinfo --version
gdal-config --version
在python中安装对应版本gdal
这时候就可以
pip install gdal==3.4.2
测试
# 在python下运行
from osgeo import gdal
gdal.__version__ # 3.4.2
大功告成!