Instalar el paquete Python gdal
en virualenv en Linux
GDAL
proporciona un buen conjunto de herramientas para operaciones relacionadas con GEO. Sin embargo, instalarlo en virtualenv en Linux no es una tarea trivial.
Esta receta describe cómo hacerlo.
Nota
Aquí uso minúsculas gdal
para el paquete Python y mayúsculas GDAL
para la biblioteca general del sistema.
Requisitos
- permitir el uso de bibliotecas osgeo (instaladas a través del
gdal
paquete Python) en virtualenv
- permitir la instalación en Linux Ubuntu
Métodos de instalación
Existen múltiples métodos para la instalación. Uno requiere compilación y toma unos minutos más.
El otro está usando el paquete de la rueda del pygdal
paquete y es muy rápido. De todos modos, para crear el paquete de rueda, uno debe crearlo una vez y la creación incluye el paso de compilación de todos modos.
Sobre GDAL
paquetes y versiones
GDAL
es una biblioteca general basada en C (++) para cálculos relacionados con GEO.
GDAL
Las utilidades se pueden instalar en todo el sistema, lo que hace que las bibliotecas compartidas estén disponibles, pero no instala el paquete Python.
GDAL
viene en diferentes versiones y cada distribución de Linux puede instalar por defecto una versión diferente.
El paquete Python gdal
requiere compilación y no es trivial de instalar en sistemas basados en Linux, ya que espera que se establezcan pocas variables ambientales. Esto hace que la instalación en virtualenv sea más difícil.
Cada gdal
versión puede asumir una versión diferente GDAL
y fallará la instalación si la versión esperada no está presente en el sistema.
El paquete Python pygdal
es una alternativa gdal
, que instala exactamente las mismas cosas que gdal
, pero lo hace de una manera mucho más amigable.
pygdal
viene en versiones que reflejan la GDAL
versión relacionada . Entonces, teniendo la GDAL
versión 1.10.1 en el sistema, deberá instalar la pygdal
versión 1.10.1.
El paquete Python gdal
(así como también pygdal
) usa el paquete raíz de Python llamado
osgeo
y tiene un conjunto de submódulos, uno de ellos osgeo.gdal
.
Si es necesario, GDAL
se pueden instalar y usar versiones distintas de las predeterminadas . Esto está fuera del alcance de esta descripción.
Los paquetes de ruedas pueden compilarse de forma cruzada, esto también está fuera de alcance
Instalando GDAL
en el sistema
Como pygdal
requiere que GDAL
las bibliotecas compartidas estén presentes, primero debemos instalarlas.
Suponiendo GDAL
que aún no está instalado, las llamadas gdal-config
se quejarán y le darán una pista sobre cómo seguir:
$ gdal-config --version
The program 'gdal-config' is currently not installed. You can install it by typing:
sudo apt-get install libgdal-dev
Sigue la pista e instálala:
$ sudo apt-get install libgdal-dev
Cada distribución puede usar una versión diferente de GDAL
. Para saber cuál usamos:
$ gdal-config --version
1.10.1
Ahora ya sabes, GDAL
está instalado y la versión es 1.10.1 (la versión puede variar).
Instalar pygdal
desde el paquete fuente (requiere compilación)
Actualmente pygdal
solo se proporciona en el paquete tar.gz, que contiene fuentes de paquetes y requiere compilación.
Suponiendo, la versión de GDAL
es 1.10.1
y que nuestro virtualenv ya está activado:
$ pip install pygdal==1.10.1
Puede tardar un tiempo en completarse, si necesita numpy, lo que también puede requerir cierta compilación. Solo espera
Comprueba, está instalado:
$ pip freeze|grep pygdal
pygdal==1.10.1.0
De ahora en adelante, puede usar el paquete osgeo en su código Python como lo desee exactamente de la misma manera que si lo instalara con el gdal
paquete Python.
Crear paquete de ruedas para pygdal
Tenga en cuenta que los paquetes de rueda deben crearse exactamente para la misma arquitectura, es decir, deben coincidir:
- Arquitectura de la CPU
- SO (Linux / Windows)
En nuestro caso, también debe coincidir con la versión de GDAL
instalado.
Los siguientes pasos se pueden hacer en virtualenv o no, como lo desee.
Primero, asegúrese de que el paquete de la rueda esté instalado:
$ pip install wheel
Suponiendo que ha GDAL
instalado y tiene la versión 1.10.1:
$ pip wheel pygdal==1.10.1.0
y espera, hasta que se complete.
Después de esto, encontrará la caseta del subdirectorio y contendrá paquetes con la extensión `whl`:
$ ls wheelhouse
numpy-1.9.1-cp27-none-linux_x86_64.whl
pygdal-1.10.1.0-cp27-none-linux_x86_64.whl
Instalar pygdal
desde paquetes de ruedas
La instalación desde paquetes con formato de rueda es mucho más rápida (un segundo en comparación con minutos), ya que no requiere compilación.
Tenga en cuenta que ese directorio con paquetes de ruedas puede tener cualquier nombre, usaremos solo el nombre de la timonera.
Active virtualenv primero.
Asegúrese de tener en el directorio de la timonera los dos paquetes de ruedas necesarios (para pygdal
y numpy
)
Asegúrese de que GDAL
esté instalado y la versión coincida con la versión de pygdal
.
Instalar pygdal
desde el paquete de la rueda:
$ pip install pygdal==1.10.1.0 -f wheelhouse
La timonera -f apuntará al directorio con archivos whl.
No es necesario instalarlo numpy
, se instala automáticamente.