¿Agregar GDAL como dependencia al paquete Python?

9

Estoy tratando de empaquetar un script Python que usa GDAL para PyPI. Comencé por incluir una referencia directa en mi setup.py:

install_requires=['GDAL==1.11.2'],

De esta forma, el paquete no se pudo instalar en mi entorno virtual de prueba:

extensions/gdal_wrap.cpp:2855:22: fatal error: cpl_port.h: No such file or directory
 #include "cpl_port.h"
                      ^
compilation terminated.
error: Setup script exited with error: command 'x86_64-linux-gnu-gcc' failed with exit status 1

Luego lo probé con una referencia a pygdal, ya que está marcado como una versión amigable virtualenv:

install_requires=['pygdal'],

De esta forma, la instalación finaliza sin errores (pero con la carga habitual de advertencias de compilación). Sin embargo, cuando invoco el script recibo este error:

Traceback (most recent call last):
  File "/home/desouslu/.virtualenvs/test_p3/bin/hasc2gml", line 5, in <module>
    from pkg_resources import load_entry_point
  File "/home/desouslu/.virtualenvs/test_p3/lib/python3.4/site-packages/pkg_resources.py", line 2716, in <module>
    working_set.require(__requires__)
  File "/home/desouslu/.virtualenvs/test_p3/lib/python3.4/site-packages/pkg_resources.py", line 685, in require
    needed = self.resolve(parse_requirements(requirements))
  File "/home/desouslu/.virtualenvs/test_p3/lib/python3.4/site-packages/pkg_resources.py", line 588, in resolve
    raise DistributionNotFound(req)
pkg_resources.DistributionNotFound: pygdal

¿Cuál es la forma correcta de configurar GDAL como una dependencia?

Actualización : la dependencia parece estar correctamente declarada, el problema probablemente esté en sentido ascendente, con el paquete GDAL en sí. Más detalles en StackOverflow .

Luís de Sousa
fuente
55
Yo diría que una pregunta pura de Python sobre gdal es válida aquí.
John Powell
2
Es interesante cómo los revisores parecen tan seguros de que esta es una pregunta estrictamente de Python, pero hasta ahora se han abstenido de señalar lo que es.
Luís de Sousa
66
Es una pregunta sobre Python y GDAL y pienso en el tema
Ian Turton
3
Esto fue publicado de forma cruzada: stackoverflow.com/questions/36471683/…
Evil Genius
1
@EvilGenius Normalmente rechazo las publicaciones cruzadas, pero en este caso puedo aprobarlo porque la votación cerrada original sobre la pregunta aquí indicó que esa era la forma de proceder.
PolyGeo

Respuestas:

3

Antes de instalar el enlace de Python GDAL, debe instalar GDAL en su sistema.

apt-get install -y libgdal-dev

Después de eso, establezca variables e instale el enlace

CPLUS_INCLUDE_PATH=/usr/include/gdal \
C_INCLUDE_PATH=/usr/include/gdal \
pip install GDAL

La versión del sistema GDAL debe ser superior a los enlaces de versión.

winsent
fuente