从头安装gdal库(Linux环境下的Python版)

这篇具有很好参考价值的文章主要介绍了从头安装gdal库(Linux环境下的Python版)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

前言

大多数情况下都是可以直接pip wheel安装成功的,但有些特殊情况下(比如一个容器内)需要从头配置gdal库。我“有幸”亲自体验了一把,整个过程 “痛并快乐着” 。整个过程查了很多资料,中间也遇到了很多问题,部分在网上没有找到相关答案,整个过程全网也没有一个类似的教程,因此记录一下留给有需要的程序猿/程序媛。

整个思路就是风来将挡、水来土掩。首先安装GDAL,不出意外的话会报错,需要安装PROJ6。然后安装PROJ6,不出意外的话就会报错,需要安装sqlite3、pkg-config和libtiff-4。一般上述安装完成基本上没有太大问题,但如果你是一个缺失各种环境和包的容器,不出意外的话又会报错,比如还需要安装liblzma、libjpeg和zlib。

要构建 GDAL 3 或更高版本,至少需要一个 C++11 兼容编译器,以及 PROJ 6 或更高版本。如果是在C++11编译器上构建老版本GDAL会提示namespace std错误。新版本需要安装PROJ依赖库,PROJ又依赖sqlite3和libtiff4,依次安装即可。具体情况可能不同,不过可以从GDAL开始安装,根据提示逐渐安装相应的包即可。
————————————————
原文链接:https://blog.csdn.net/wokaowokaowokao12345/article/details/126644466

GDAL安装

GDAL安装

下载地址:http://download.osgeo.org/gdal/
选择合适的版本。我这里以3.3.3版本为例。

# 新建临时文件夹存储
mkdir /temp
cd temp
# 开始安装
wget http://download.osgeo.org/gdal/3.3.3/gdal-3.3.3.tar.gz  # 下载安装包
tar -xvzf gdal-3.3.3.tar.gz  # 解压
cd gdal-3.3.3
# 编译安装
./configure --with-python='/usr/bin/python3.7'  # 可通过which python3.7查看
make -j8  # -j为多线程执行,可通过make --help查看
make install

ldconfig  # 更新动态链接库
gdalinfo --version  # 这里如果出现版本号并且没有报错,说明验证没问题,然后可以继续构建python包

到这里二进制的gdal就安装完成了,下面是构建python包,请注意这里前提是你已经安装好了python环境(conda也可以使用)。

# 构建python包
cd swig/python/
python setup.py build
python setup.py install

这里使用./configure --with-python='/usr/bin/python3.7'配置时,会出现如下所示的结果。
注意查看SWIG bindings的状态,如果是no,就需要安装SWIG才能构建python包,安装完后再次配置该状态会变为python。
安装完SWIG后,再次编译之前最好使用make distclean清除之前编译的文件

linux下python 安装gdal库,遥感,# 安装教程,linux,python,运维
linux下python 安装gdal库,遥感,# 安装教程,linux,python,运维
安装完成后,可以通过pip list或conda list查看是否安装成功。
通过打开python,输入以下来验证是否安装成功。

from osgeo import gdal 
print(gdal.__version__)

linux下python 安装gdal库,遥感,# 安装教程,linux,python,运维

Github/gdal issues里面有相关问题的提问,但没有解决方法,不过给了一些优化的方法,可以参考:
https://github.com/OSGeo/gdal/issues/1199

报错:

collect2: error: ld returned 1 exit status
GNUmakefile:90: recipe for target 'gdalinfo' failed
make[1]: *** [gdalinfo] Error 1
make[1]: Leaving directory '/temp/gdal-3.3.3/apps'
GNUmakefile:120: recipe for target 'apps-target' failed
make: *** [apps-target] Error 2

linux下python 安装gdal库,遥感,# 安装教程,linux,python,运维
这个没有解决,不过测试的Gdal已经可以正常使用。有巨佬知道的话欢迎留言指导

SWIG安装

SWIG安装

下载地址:https://sourceforge.net/projects/swig/files/swig/
https://sourceforge.net/projects/swig/files/swig/swig-4.1.0/swig-4.1.0.tar.gz
安装流程

cd temp
wget https://sourceforge.net/projects/swig/files/swig/swig-4.1.0/swig-4.1.0.tar.gz
tar -xvzf swig-4.1.0.tar.gz
# 编译安装
cd swig-4.1.0
./configure
make
make install

安装完成后使用swig -version测试安装是否成果。下图表示安装成功。
linux下python 安装gdal库,遥感,# 安装教程,linux,python,运维

报错:Cannot find pcre2-config script from PCRE2 (Perl Compatible Regular Expressions) library package. This dependency is needed for configure to complete,
linux下python 安装gdal库,遥感,# 安装教程,linux,python,运维
这个下面已经给出了解决办法,4种方法,最简单的是./configure --without-pcre
安装不安装都行,这个是prel语言包,没有安装再次编译时会提示The SWIG test-suite and examples are configured for the following languages: perl5
安装方法如下:
perl5安装

wget https://www.cpan.org/src/5.0/perl-5.28.0.tar.gz
tar -xzf perl-5.28.0.tar.gz
cd perl-5.28.0
./Configure -des -Dprefix=$HOME/localperl  # 注意大写C
make 
make test
make install
proj 安装

proj 安装

官方下载地址:https://proj.org/download.html
proj-8.1.1.tar.gz

cd temp
wget https://download.osgeo.org/proj/proj-8.1.1.tar.gz
tar -xvzf proj-8.1.1.tar.gz
# 编译安装
cd proj-8.1.1
./configure
make
make install

报错:
linux下python 安装gdal库,遥感,# 安装教程,linux,python,运维

sqlite安装

sqlite安装

下载地址:https://www.sqlite.org/download.html

wget https://www.sqlite.org/snapshot/sqlite-snapshot-202301131932.tar.gz
# 解压
tar -xvzf sqlite-snapshot-202301131932.tar.gz
编译安装
cd sqlite-snapshot-202301131932
./configure
make
make install

linux下python 安装gdal库,遥感,# 安装教程,linux,python,运维
测试

sqlite3 student
.exit

弹出如图所示表示安装成功。
linux下python 安装gdal库,遥感,# 安装教程,linux,python,运维

pkg-config 安装

pkg-config 安装

下载地址:https://lists.freedesktop.org/archives/pkg-config/2017-March/001084.html

wget http://pkgconfig.freedesktop.org/releases/pkg-config-0.29.2.tar.gz
tar -xvzf pkg-config-0.29.2.tar.gz
# 编译安装
cd pkg-config-0.29.2
./configure 
make
make check
make install

linux下python 安装gdal库,遥感,# 安装教程,linux,python,运维
linux下python 安装gdal库,遥感,# 安装教程,linux,python,运维
报错:
linux下python 安装gdal库,遥感,# 安装教程,linux,python,运维将./configure更改为下面的命令即可。

./configure --with-internal-glib

参考:https://blog.csdn.net/wxh0000mm/article/details/122322486


其他报错

出现Package '****', required by 'libtiff-4', not found 基本上都是这个包缺失,下载编译即可解决。

No package ‘libtiff-4’ found

linux下python 安装gdal库,遥感,# 安装教程,linux,python,运维
解决办法:安装libtiff-4包

下载地址:https://www.linuxfromscratch.org/blfs/view/svn/general/libtiff.html

wget https://download.osgeo.org/libtiff/tiff-4.5.0.tar.gz
tar -zxvf tiff-4.5.0.tar.gz
cd tiff-4.5.0
./configure
make
make install

Package ‘liblzma’, required by ‘libtiff-4’, not found

liblzma缺失,liblzma库是xz utils的子集,所以直接安装xz就可以解决。

wget http://tukaani.org/xz/xz-5.2.2.tar.gz
tar -xzvf xz-5.2.2.tar.gz
cd xz-5.2.2
./configure
make
make install

Package ‘libjpeg’, required by ‘libtiff-4’, not found

linux下python 安装gdal库,遥感,# 安装教程,linux,python,运维
下载地址:http://www.ijg.org/
http://www.ijg.org/files/jpegsrc.v9e.tar.gz

wget http://www.ijg.org/files/jpegsrc.v9e.tar.gz
tar -xzvf xz-5.2.2.tar.gz
cd xz-5.2.2
./configure
make
make install

Package ‘zlib’, required by ‘libtiff-4’, not found

linux下python 安装gdal库,遥感,# 安装教程,linux,python,运维
下载地址:http://www.zlib.net/
http://www.zlib.net/zlib-1.2.13.tar.gz

wget http://www.zlib.net/zlib-1.2.13.tar.gz
tar -xzvf zlib-1.2.13
cd zlib-1.2.13
./configure
make
make install

checking for curl-config… not-found

checking for curl-config… not-found
configure: error: curl not found. If wanting to do a build without curl support (and thus without built-in networking capability), explictly disable it with --without-curl
linux下python 安装gdal库,遥感,# 安装教程,linux,python,运维
这里看需要,有需要的先安装curl,然后重新安装PRO。对我来说不重要,所以直接忽略。
./configure --without-curl

configure: error: PROJ 6 symbols not found

  1. 安装PROJ 6以上的版本。安装教程:proj 安装
  2. 如果安装过上面的还报错,可能是之前使用apt install libproj-dev,使用apt remove libproj-dev卸载问题便解决。

参考链接

Ubuntu 安装 GDAL C++库
linux 安装GDAL (python)
gdal-3.1.2 linux(Ubuntu) 编译 附SQLite3 PROJ6编译
官方安装教程文章来源地址https://www.toymoban.com/news/detail-783555.html

到了这里,关于从头安装gdal库(Linux环境下的Python版)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Linux系统安装Python3环境(超详细)_linux 安装python3

    本文基于如下Linux系统版本: 1、默认情况下,Linux会自带安装Python,可以运行python --version命令查看 如图: 我们看到Linux中已经自带了Python2.7.5。再次运行python命令后就可以使用python命令窗口了(Ctrl+D退出python命令窗口)。 2、查看Linux默认安装的Python位置 看到/usr/bin/python和

    2024年01月24日
    浏览(36)
  • Linux下Python环境安装

    Linux通常都附带Python环境,但是Linux附带的大多数Python都是2.7.5版本。如果我们想使用 Python3 或者 Anaconda 3,最好安装一个新的Python3环境,但不要尝试删除Python2,避免引起不必要的麻烦 (注意安装过程中使用root用户进行安装可以省略\\\"sudo\\\") 下载python安装包 替换yum为清华源(可以

    2024年02月09日
    浏览(18)
  • Linux开发板安装Python环境

    硬件:STM32MP157,使用的是野火出的开发板。 软件:Debian ARM 架构制作的 Linux 发行版,版本信息如下: Linux发行版本:Debian GNU/Linux 10 内核版本:4.19.94 对于 Python 是什么,此处简要概括如下: Python 是一种跨平台的解析型编程语言 Python 易学、易用、功能强大,被大量应用在

    2024年02月04日
    浏览(21)
  • linux服务器安装python环境配置

    跳板机是一个可以从公共网络访问的服务器,它允许用户通过 SSH 连接进入私有网络中的其他服务器。如上图所示通过跳板机可以连接上7个私有的服务器 当你连接到跳板机时,你可以使用 SSH 隧道或代理来访问私有网络中的其他服务器。当你使用 SSH 隧道或代理时,你实际上

    2024年02月06日
    浏览(44)
  • Linux环境下Python3.10安装

    事件缘起我在Linux服务器(CentOS 7.8)安装Python3.10,并替换python软链接为python3之后,yum命令不可用。特此记录一下。 1.使用yum程序提前安装Python依赖。 2.在服务器下载Python-3.10.11源码包。 3.解压刚刚已经下载成功的源码包。 4.进入源码目录进行配置。 5.配置完成后,执行编译和安

    2024年02月05日
    浏览(41)
  • Linux和Mac环境下的Nginx安装教程

    登录root账号,服务器环境为阿里云的Cent OS 7.6版本 执行yum install yum-utils 运行vim /etc/yum.repos.d/nginx.repo 输入: 然后查看源 看到存在稳定版的源,确认无误。 运行安装命令 过程中输入y,确认 查看版本,若出现版本号,则安装成功 用whereis nginx可以查看到目录: nginx: /usr/sbin/

    2024年02月16日
    浏览(27)
  • openMPI在Linux环境下的安装和部署

    CentOS7 进入官网openmp.org, 下载压缩包openmpi-4.1.4.tar.gz 将openmpi-4.1.4.tar.gz放到/opt文件夹内 解压 tar -zxvf openmpi-4.1.4.tar.gz 进入/openmpi-4.1.4文件夹 输入 ./configure 命令等待运行完成 这个运行./configure 可能会报错(无则跳过此步骤),错误提示为: configure: error: C++ preprocessor “/lib/cpp”

    2024年02月01日
    浏览(25)
  • linux环境提示python: command not found,安装python

    场景描述: 新部署的容器环境,终端执行python命令,提示没有该命令。 从报错异常可以看出,可能是python环境未安装。 分析思路: 检查python路径: 方式一: type -a python 方式二: ls -l /usr/bin/python ls -l /usr/bin/python* 方式三: which python 如果输出空或者no such file or directory, 则说

    2024年02月07日
    浏览(29)
  • Linux 下安装 miniconda,管理 Python 多环境

    1、下载安装包 Miniconda3-py37_22.11.1-1-Linux-x86_64.sh,或者自行选择版本 2、把安装包上传到服务器上,这里放在 /home/software 3、安装 4、按回车 5、按空格跳到最下面,输入yes 6、选择安装位置,这里选择默认,直接回车,有需要可以自己输入改掉 7、初始化 miniconda,输入 yes 8、现

    2024年02月08日
    浏览(29)
  • 在Anaconda(conda)(命令行/Linux )中新建环境安装python版本,删除环境等

    1.在命令行终端新建conda环境 例如新建一个叫love的环境 在Windows的Anaconda Prompt 或 macOS/Linux的终端输入 2.激活环境 注:运行conda activate则直接激活anaconda的base环境 3.退出环境 4.查看现有的环境有哪些 5.删除环境

    2024年01月16日
    浏览(43)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包