linux上python-gdal环境配置

最近跑代码时突然在 from osgeo import gdal 时报错,

ImportError: libgeos-3.4.2.so: cannot open shared object file: No such file or directory

是动态链接库的问题,很奇怪自己没有动过环境却出了问题,经历了一波三折,总结一下配置gdal的环境方法

第一种:conda 卸载与安装

conda与pip应该是最简单的一种方法,但是可能由于镜像不稳定的原因,使用conda install gdal 时,总是无法找到资源,使用pip install gdal可以安装成功,不过依旧没有解决动态链接库的问题

第二种:源码编译

由于自己账号没有root权限,所以源码编译不能装在根目录下,参考一些博客,方法如下:
第一步下载Proj4、GEOS、gdal (分别是tar.gz和tar.bz2),这一步有的人说只要gdal,有的人说需要前面两个依赖库,我这里都下载编译了
第二步解压缩 tar -zxvf + gdal包名字 tar -jxvf + geos包名字
第三步在你想要安装的目录下新建三个文件夹,gdal、geos、proj
第四步目录切到解压缩后的prj目录

./configure --prefix=‘你的proj目录’ --without-jni
make
make install

配置时如果失败就去掉–without-jni
第五步 切到解压缩的geos文件夹,重复上面配置、编译、安装
第六步 切到解压缩的gdal文件夹

./configure --prefix=‘你的gdal路径’--with-geos=‘指定到geos下的bin/geos-config’
make
make install

这一步的编译耗费时间很长,大概快20分钟,第五步和第六步编译文件时,都会一直循环输出一些语句,开始时我以为是报错,后来没有查到类似问题,可能是正常的。
第七步 更改环境变量

vim ~/.bashrc

在最后一行加上

export PATH=$PATH:/home/users/yourname/local/gdal-1.11.1/bin
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/home/users/yourname/local/gdal-1.11.1/lib:/home/users/yourname/local/proj-4.8.0/lib

退出保存,并刷新环境变量
结果:这一步我没有截图,还是动态链接库的问题,只不过换了一个库名字,泪奔

第三步:其他无用方法

之后又找了很多网页,试了其他方法:比如下载这个库建立软链接、在系统中找到缺失的库

find  /  -name  libgeos-3.4.2.so 

之后建立软链接,还是失败;
回滚环境(这个乍一看是非常方便的方法,用了后效果还是不行)
conda list --revisions,能够安装和卸载的库,时间线排下来,(用的putty远程,因为记录很长,在conda list --revisions后加上 |more -c 可以看到全部记录)之后
conda install --revision N (其中N是修订版号),方法听起来很美好,尝试后还是失败,可能是我之前的记录失效了?

第四步:绝杀 conda直接安装fiona

找到一种方法,直接用conda安装fiona,会自动把gdal包给你配置好,这样可以避免依赖包产生版本冲突,简直是懒人必备
只要两句

conda uninstall gdal #假如conda无法卸载,就用pip
conda install fiona


over,收工。

你可能感兴趣的:(ogr)