¿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 .


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.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.