web-dev-qa-db-fra.com

Python Package GDAL Fichier d'en-tête manquant lors de l'installation via PIP

J'essaie d'installer Gdal de PIP pip install gdal Dans un environnement virtuel (Ubuntu). Il échoue parce qu'il ne peut pas trouver cpl_port.h

extensions/gdal_wrap.cpp:2853:22: fatal error: cpl_port.h: No such file or directory
compilation terminated

Cependant, GDAL est installé correctement et le fichier d'en-tête est situé à /usr/include/gdal/cpl_port.h. Existe-t-il une variable d'environnement pour GDAL qui doit être définie pour que PIP pour trouver les fichiers d'en-tête?

22
Kevin

Comme suggéré dans l'autre thread , exportant des variables de coquille avant d'exécuter Pip fonctionnant parfaitement. Un chemin pour *_INCLUDE_PATH peut être trouvé avec gdal-config --cflags.

# GDAL library must have been installed
Sudo apt-get install libgdal-dev

# Set up pip and/or virtualenv stuff
...

# Now install Python binding for GDAL
export CPLUS_INCLUDE_PATH=/usr/include/gdal
export C_INCLUDE_PATH=/usr/include/gdal
pip install GDAL
23
tomyun

La réponse de Tomyun a travaillé pour moi, avec la réserve que vous devez vous assurer que la version de Gdal-Dev est installée via apt-get correspond à la version installée par pip.

Pour Ubuntu 14.04, les commandes sont:

# GDAL library must have been installed
Sudo apt-get install libgdal-dev

# Set up pip and/or virtualenv stuff
...

# Now install Python binding for GDAL
export CPLUS_INCLUDE_PATH=/usr/include/gdal
export C_INCLUDE_PATH=/usr/include/gdal
pip3 install GDAL=1.10.0
7
Neil Smith

C'est ce qui a fonctionné pour moi:

Je devais avoir les dernières versions au coeur pour installer GDAL 2.2.4 via PIP:

Sudo apt-add-repository ppa:ubuntugis/ubuntugis-unstable
Sudo apt update
Sudo apt install libgdal-dev

Avant cela, je devais avoir extensions/gdal_wrap.cpp:3172:27: fatal error: cpl_vsi_error.h: No such file or directory, même lorsque vous y compris le chemin "Inclure" correct sur PIP.

L'installation du PIP (dans un virtualenv):

 pip install --global-option=build_ext --global-option="-I/usr/include/gdal" gdal
1
Scott Staniewicz

J'avais également cette erreur lors du test d'installation dans un environnement virtuel un paquet de mine qui dépend du GDAL. Dans ce cas, la solution consiste à modifier la dépendance de GDAL à pygdal dans le install_requires Paramètre dans setup.py. Ainsi:

install_requires=['pygdal'],

1
Luís de Sousa