Instalar el paquete Python gdalen virualenv en Linux
GDALproporciona 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 gdalpara el paquete Python y mayúsculas GDALpara la biblioteca general del sistema.
Requisitos
- permitir el uso de bibliotecas osgeo (instaladas a través del
gdalpaquete 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 pygdalpaquete 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 GDALpaquetes 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 gdalrequiere 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 gdalversión puede asumir una versión diferente GDALy fallará la instalación si la versión esperada no está presente en el sistema.
El paquete Python pygdales una alternativa gdal, que instala exactamente las mismas cosas que gdal, pero lo hace de una manera mucho más amigable.
pygdalviene en versiones que reflejan la GDALversión relacionada . Entonces, teniendo la GDAL
versión 1.10.1 en el sistema, deberá instalar la pygdalversión 1.10.1.
El paquete Python gdal(así como también pygdal) usa el paquete raíz de Python llamado
osgeoy tiene un conjunto de submódulos, uno de ellos osgeo.gdal.
Si es necesario, GDALse 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 GDALen el sistema
Como pygdalrequiere que GDALlas bibliotecas compartidas estén presentes, primero debemos instalarlas.
Suponiendo GDALque aún no está instalado, las llamadas gdal-configse 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, GDALestá instalado y la versión es 1.10.1 (la versión puede variar).
Instalar pygdaldesde el paquete fuente (requiere compilación)
Actualmente pygdalsolo se proporciona en el paquete tar.gz, que contiene fuentes de paquetes y requiere compilación.
Suponiendo, la versión de GDALes 1.10.1y 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 gdalpaquete 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 GDALinstalado.
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 GDALinstalado 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 pygdaldesde 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 pygdaly numpy)
Asegúrese de que GDALesté instalado y la versión coincida con la versión de pygdal.
Instalar pygdaldesde 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.