Ajout de GDAL en tant que dépendance au package Python?


9

J'essaie d'empaqueter un script Python qui utilise GDAL pour PyPI. J'ai commencé par inclure une référence directe dans mon setup.py:

install_requires=['GDAL==1.11.2'],

De cette façon, le package n'a pas pu être installé dans mon environnement virtuel de test:

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

Je l'ai ensuite essayé avec une référence à pygdal, car il est marqué comme une version conviviale de virtualenv:

install_requires=['pygdal'],

De cette façon, l'installation se termine sans erreur (mais avec la charge habituelle d'avertissements de compilation). Cependant, lorsque j'invoque le script, je récupère cette erreur:

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

Quelle est la bonne façon de définir GDAL en tant que dépendance?

Mise à jour : La dépendance semble être correctement déclarée, le problème est probablement en amont, avec le package GDAL lui-même. Plus de détails sur StackOverflow .


5
Je dirais qu'une pure question Python sur gdal est valide ici.
John Powell

2
Intéressant de voir comment les critiques semblent si certains qu'il s'agit d'une question strictement Python mais se sont jusqu'à présent abstenus de montrer ce que c'est.
Luís de Sousa

6
C'est une question python et GDAL et je pense sur le sujet
Ian Turton

3
Ceci a été publié sur plusieurs postes
Evil Genius

1
@EvilGenius Je vote normalement contre les publications croisées, mais dans ce cas, je peux l'approuver parce que le vote serré initial sur la question ici a indiqué que c'était la façon de procéder.
PolyGeo

Réponses:


3

Avant d'installer la liaison python GDAL, vous devez installer GDAL sur votre système.

apt-get install -y libgdal-dev

Après cela, définissez les variables et installez la liaison

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

La version du système GDAL doit être supérieure aux liaisons de version.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.