最近要做大图像的处理,需要用到rasterio这个包,在安装的时候碰到了包冲突和报错的问题,最后通过虚拟环境实现了解决
要安装rasterio,需要先安装GDAL。当我用pip安装的时候,最后报了Command "python setup.py egg_info" failed with error code 1 in XXX
的错误,用conda安装时又提示包冲突。于是我决定新建一个虚拟环境进行安装。
创建虚拟环境rasterio,后面python=x.x是指定的python版本,我选择较为稳定的3.6版
conda create -n rasterio python=3.6
现在虚拟环境新建完成,默认保存在env文件夹中,查看现存虚拟环境
conda env list
输入下面两条指令,完成GDAL和rasterio的安装
conda install GDAL
conda install rasterio
遇到包冲突的问题,大家都可以考虑新建虚拟环境进行安装
12.28更新
用上述方法安装之后发现在python命令行界面中尝试导入rasterio和GDAL都会提示ImportError: libpoppler.so.71: cannot open shared object file: No such file or directory
查阅博客之后,在.bashrc文件中export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib
并在命令行中输入source .bashrc
使其生效,结果再在python中import两个模块时,均提示找不到模块ImportError: No module named gdal,ImportError: No module named gdal
现在感觉问题应该是:安装python的GDAL之前,需要先安装GDAL,明天把GDAL装好之后再进行更新。
12.29更新
很抱歉一开始发的时候没有了解清楚,要安装python的GDAL确实使需要先安装GDAL的。现在总结一下安装rasterio的整个流程。
-
安装GDAL。这里大部分网上的教程都是自己编译的。(但是我在自己编译的过程中遇到了更多的问题,这也让我怀疑大部分教程是没有自己实践过的,当然也有可能是因为我系统和他们的差异)。我参考博客Ubuntu 安装 GDAL 2.1,最后顺利安装。
-
安装python的GDAL
conda install GDAL
-
安装rasterio
conda install rasterio
-
参考Stackfow的问题回答ImportError: No module named gdal,将osgeo文件夹的路径添加至.bashrc文件中
-
测试安装结果,安装成功
>>> from osgeo import gdal >>> import rasterio
后续使用过程中如果遇到了什么问题会及时进行更新