Instalando el paquete gdal
de Python en virualenv en Linux
GDAL
proporciona un buen conjunto de herramientas para las operaciones relacionadas con GEO. Sin embargo,
instalarlo en virtualenv en Linux no es una tarea trivial.
Esta receta describe, cómo hacerlo.
nota
aquí utilizo gdal
en minúsculas para el paquete Python y mayúsculas GDAL
para
biblioteca general del sistema.
Requisitos
- permitir el uso de bibliotecas osgeo (instaladas a través del paquete
gdal
Python) en
virtualenv
- permitir la instalación en Linux Ubuntu
Métodos de instalación
Hay varios métodos para la instalación. Uno requiere compilación
y toma unos minutos más.
El otro está usando el paquete de ruedas del paquete pygdal
y es muy rápido.
De todos modos, para crear el paquete de rueda, uno necesita crearlo una vez y la creación incluye el paso de compilación de todos modos.
Acerca de GDAL
paquetes y versiones
GDAL
es una biblioteca general basada en C (++) para cálculos relacionados con GEO.
GDAL
las utilidades pueden instalarse en todo el sistema, lo que hace que las bibliotecas compartidas
disponible, pero no instala el paquete Python en sí.
GDAL
viene en diferentes versiones y cada distribución de Linux puede
instalación predeterminada versión diferente.
El paquete de Python gdal
requiere compilación y no es trivial de instalar
en sistemas basados en Linux, ya que se espera que pocas variables ambientales sean
conjunto. Esto hace que la instalación en virtualenv sea más difícil.
Cada versión de gdal
puede asumir una versión diferente de GDAL
y fallará
la instalación si la versión esperada no está presente en el sistema.
El paquete Python pygdal
es una alternativa a gdal
, que instala exactamente el
lo mismo que gdal
, pero lo hace de una forma mucho más amigable con el virtualenv.
pygdal
viene en versiones que reflejan la versión relacionada GDAL
. Así que tener GDAL
La versión 1.10.1 en el sistema deberá instalar pygdal
versión 1.10.1.
El paquete de Python gdal
(así como pygdal
) usa el paquete raíz de python llamado
osgeo
y tiene un conjunto de submódulos, uno de los cuales es osgeo.gdal
.
Si es necesario, se pueden instalar otras versiones que no sean las predeterminadas de GDAL
y
usado. Esto está fuera del alcance de esta descripción.
Los paquetes de ruedas se pueden compilar de forma cruzada, esto también está fuera del alcance.
Instalando GDAL
en el sistema
Como pygdal
requiere GDAL
de bibliotecas compartidas para estar presentes, debemos instalar
ellos primero.
Suponiendo que GDAL
aún no está instalado, llamar a gdal-config
se quejará
y le daremos una pista sobre cómo hacer un seguimiento:
$ 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 sugerencia e instálala:
$ sudo apt-get install libgdal-dev
Cada distribución puede usar una versión diferente de GDAL
. Para saber cual
utilizamos:
$ 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).
Instale pygdal
del paquete fuente (requiere compilación)
Actualmente, pygdal
se proporciona solo en el paquete tar.gz, que contiene
Paquetes de fuentes y requiere compilación.
Suponiendo que la versión de GDAL
es 1.10.1
y que nuestro virtualenv es
ya activado:
$ pip install pygdal==1.10.1
Es posible que tarde un poco en completarse, es necesario que se adormezca, lo que también puede
Requiere un poco de compilación. Solo espera.
Comprueba, está instalado:
$ pip freeze|grep pygdal
pygdal==1.10.1.0
De ahora en adelante, puedes usar el paquete osgeo en tu código Python como quieras.
exactamente de la misma manera que si lo instalara por gdal
Python
paquete.
Creando el paquete de ruedas para pygdal
Tenga en cuenta que los paquetes de ruedas deben crearse exactamente para el mismo
arquitectura, es decir, debe coincidir con:
- arquitectura de la CPU
- SO (Linux / Windows)
En nuestro caso, también debe coincidir con la versión de GDAL
instalada.
Los siguientes pasos se pueden hacer en virtualenv o no, como quieras.
Primero, asegúrese de que el paquete de ruedas esté instalado:
$ pip install wheel
Suponiendo que tienes 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 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
de los paquetes de ruedas
La instalación desde paquetes con formato de rueda es mucho más rápida (un segundo
en comparación con los minutos), ya que no requiere compilación.
Tenga en cuenta que el directorio con paquetes de ruedas puede tener cualquier nombre, usaremos
solo el nombre de la timonera.
Activar virtualenv primero.
Asegúrese de tener, en el directorio de la caseta, ambos paquetes de ruedas requeridos
(para pygdal
y numpy
).
Asegúrese de que GDAL
esté instalado y la versión coincida con la versión de pygdal
.
Instale pygdal
del paquete de ruedas:
$ pip install pygdal==1.10.1.0 -f wheelhouse
La -f wheelhouse apuntará al directorio con archivos whl.
No es necesario instalar numpy
, se instala automáticamente.