一、需求
由于需要在服务器上运行程序,所以往往需要将Windows下写好的代码在Centos(或其他Linux)版本下编译,但是对Python3的GDAL库而言,pip install gdal要么失败,要么安装的是gdal 1.* 版本的库,所以还是需要另想他法。有些人用Conda的话,对安装gdal 比较友好,直接conda install gdal大部分是可以安装成功,并且是较新的版本。
二、解决
(1)个人没用过的方法
放弃pip,换conda安装。(个人习惯了pip安装python环境)
(2)下载GDAL源码编译
这个网上有很多Linux下编译安装GDAL的教程,我个人在Ubuntu和Centos下都编译安装过,个人感觉有几点需要注意的:
①注意GDAL库和Proj等其他的库最好选择版本接近的,这里可以通过查看版本发布的日期,比如都选2019年12月左右发布的版本;
②想用Python-gdal,编译时选项里 --with-python3一定要带上别忘了。至于为什么是--with-python3而不是--with-python,等你安装完发现Linux下自带的python2有了gdal但是python3没有的时候就知道了 =_=!
③编译安装好gdal之后,在编译工程目录下swig里有python的安装脚本,用python setup.py build 和 python setup.py install就可以安装对应的python-gdal。但是,安装完python还是无法from osgeo import gdal,这里大概率是因为没有给安装好的gdal配置环境变量,配置一下就好了。
(3)yum install gdal
以往都是利用方法(2)自己编译安装gdal,搞了几次之后比较熟悉这个流程了,但是每次换新环境或者在不同电脑上配环境时,都要重新编译和安装,就觉得很麻烦。偶尔有一天在服务器上正准备折腾gdal时,突发奇想试了试yum,竟然成功了。特此分享一下。
①更换好yum源
这一步一般服务器初始配置时都会换好yum源,说白了就是更换一下当前服务器上“软件仓库”的目录,原始的国外仓库下载软件什么的比较慢,换成国内的仓库当然就比较快。网上有很多教程,本文环境是更换了aliyun的源。
②yum下查询gdal
执行sudo yum search gdal
很惊奇的发现,里面有gdal3版本的python安装包,既然能查询到,那么肯定就可以安装!
③yum安装gdal-python
执行sudo yum install gdal32-python3.x86_64
等待安装成功即可。
④验证python导入是否成功
首先pip3 list,查看时候有了GDAL
然后在python3里,from osgeo import gdal看是否报错。(有些人可能是import gdal)
可以看到import正常,并且gdal的版本是3.*的,跟需要的版本一致。至此就很“轻松”、”简便“、”快速“的完成了python-gdal的安装!
三、总结
三种安装gdal的方式都可以,看个人需求。个人觉得方法(3)最适合新手,方法(2)稍微复杂点,但是这个过程是Linux应用必走的过程,个人还是推荐大家都去自行编译一下,会学到很多东西。方法(1)个人没怎么用过,习惯用Conda的同学肯定更喜欢啦!
最后,如果我的方法帮到了你,那么请点赞收藏多多支持!如果没有帮到你,那么也不要灰心,肯定有很多人面临着和你一样的问题,总会有办法的!
"愿生有去处,苍有归途。
但保持飞扬。
唯有你曾与我美好的片段
像钻石一样在脑海中,闪闪发光”
——《闪光的回忆》 Escape Plan