gdal
在Linux上将Python软件包安装到virualenv中
GDAL
为GEO相关操作提供了很好的工具包。但是,在Linux上将其安装到virtualenv并非易事。
本食谱描述了如何做到这一点。
注意
在这里,我将小写gdal
用于Python程序包,将大写GDAL
用于一般系统范围的库。
要求
- 允许使用osgeo库(通过
gdal
Python软件包安装)到virtualenv
- 允许在Linux Ubuntu上安装
安装方式
有多种安装方法。一个需要编译,并且要花几分钟的时间。
另一种是使用轮式包装的pygdal
包装,速度很快。无论如何,要创建轮包,就需要创建一次,并且创建过程始终包括编译步骤。
关于GDAL
软件包和版本
GDAL
是用于GEO相关计算的通用C(++)库。
GDAL
可以在系统范围内安装实用程序,这使得共享库可用,但不会安装Python包本身。
GDAL
有不同的版本,每个Linux发行版可能默认安装不同的版本。
Python软件包gdal
需要编译,并且在基于Linux的系统上安装并不容易,因为它希望设置很少的环境变量。这使得安装到virtualenv更加困难。
每个gdal
版本可能假定使用不同的版本,GDAL
并且如果系统中没有预期的版本,则安装将失败。
Python包pygdal
是的替代品gdal
,它安装了与完全相同的东西gdal
,但是以更友好的virtualenv方式进行安装。
pygdal
提供反映相关GDAL
版本的版本。因此,GDAL
在系统中有1.10.1版时,您应该安装pygdal
1.10.1版。
Python包gdal
(以及pygdal
)使用名为的python根包
osgeo
并具有一组子模块,其中一个为osgeo.gdal
。
如果需要,GDAL
可以安装和使用默认版本以外的其他版本。这超出了本描述的范围。
轮包可以交叉编译,这也超出了范围。
安装GDAL
到系统
由于pygdal
需要GDAL
共享库,因此我们必须先安装它们。
假设GDAL
尚未安装,则致电gdal-config
将抱怨并提示您如何进行跟进:
$ gdal-config --version
The program 'gdal-config' is currently not installed. You can install it by typing:
sudo apt-get install libgdal-dev
按照提示进行安装:
$ sudo apt-get install libgdal-dev
每个发行版可能使用的不同版本GDAL
。要找出我们使用的:
$ gdal-config --version
1.10.1
现在您已经知道,GDAL
已安装并且版本为1.10.1(版本可能有所不同)。
pygdal
从源代码包安装(需要编译)
当前pygdal
仅在tar.gz软件包中提供,该软件包包含软件包源并需要编译。
假设GDAL
is 的版本1.10.1
和我们的virtualenv已经被激活:
$ pip install pygdal==1.10.1
它可能需要一段时间才能完成,是否需要numpy,也可能需要一些编译。等一下
检查,是否已安装:
$ pip freeze|grep pygdal
pygdal==1.10.1.0
从现在开始,您可以按照自己喜欢的方式在Python代码中使用osgeo软件包,就像使用gdal
Python软件包安装osgeo软件包一样。
创建用于 pygdal
请注意,必须为完全相同的架构创建轮包,即必须匹配:
- CPU架构
- 作业系统(Linux / Windows)
在我们的情况下,它还必须与GDAL
已安装的版本匹配。
您可以根据需要在virtualenv中完成以下步骤。
首先,请确保已安装轮包:
$ pip install wheel
假设您已经GDAL
安装并且其版本为1.10.1:
$ pip wheel pygdal==1.10.1.0
然后等待,直到完成。
在这之后,您将找到子目录wheelhouse,其中应包含扩展名为“ whl”的软件包:
$ ls wheelhouse
numpy-1.9.1-cp27-none-linux_x86_64.whl
pygdal-1.10.1.0-cp27-none-linux_x86_64.whl
pygdal
从车轮套件安装
从车轮格式化的软件包进行安装的速度要快得多(相比于几分钟而言,是一秒钟),因为它不需要编译。
请注意,带有wheel软件包的目录可以具有任何名称,我们将仅使用名字wheelhouse。
首先激活virtualenv。
确保在驾驶室目录中拥有两个必需的轮包(用于pygdal
和numpy
)。
确保GDAL
已安装,并且版本与的版本匹配pygdal
。
pygdal
从车轮包装上安装:
$ pip install pygdal==1.10.1.0 -f wheelhouse
-f操舵室应指向带有whl文件的目录。
无需安装numpy
,它会自动安装。