2012-07-04 8 views
16

Sto provando ad installare gdal dal pip pip install gdal all'interno di un ambiente virtuale (Ubuntu). Fallisce perché non riesce a trovare cpl_port.hPython GDAL pacchetto mancante file di intestazione durante l'installazione via pip

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

Tuttavia GDAL è installato correttamente e il file di intestazione si trova a /usr/include/gdal/cpl_port.h. Esiste una variabile d'ambiente per GDAL che deve essere impostata affinché pip possa trovare i file di intestazione?

risposta

5

Utilizzando PIP:

pip install --no-install GDAL 

Poi cd nella ENV/build/GDAL

python setup.py build_ext --include-dirs=/usr/include/gdal 
pip install --no-download GDAL 

(Fonte: http://ubuntuforums.org/showthread.php?t=1769445)

Utilizzando Buildout:

[gdal-bindings] 
recipe = zc.recipe.egg:custom 
egg = GDAL==1.9.1 
include-dirs = /usr/include/gdal 
library-dirs = /usr/lib 
+0

Questo potrebbe anche essere 'includere-dirs =/Library/Frameworks/GDAL.framework/Versions/2.1/intestazioni /' su OSX Se si è installato w/Kyngchaos ... – Owen

17

Come suggerito in the other thread, l'esportazione di alcune variabili di shell prima dell'esecuzione di pip funzionava perfettamente. Un percorso per *_INCLUDE_PATH può essere trovato con 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 
+0

Questa fisso per me, ma vedi anche la risposta di @Neil Smith: in Ubuntu 14.04, devi abbinare la versione di libgdal installata sul sistema. – Gabriel

+0

Continuo a pensare che questo sia un bug. gdal_wrap.cpp dovrebbe #include "gdal/cpl_port.h" invece di solo "cpl_port.h" –

+0

Sicuramente non ha funzionato per me. Ancora lo stesso errore cpl_port.h. Utilizzo di OpenSUSE – DanCat

7

risposta di Tomyun lavorato per me, con la clausola che si deve garantire che la versione di GDAL-dev installato tramite apt-get corrisponda alla versione in corso di installazione da pip.

Per Ubuntu 14.04, i comandi sono:

# 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 
+3

Uso anche Ubuntu 14.04. Per me non ha funzionato (non ho virtualenv). Solo quando ho cambiato l'ultima riga in questa: installazione sudo pip3 --global-option = build_ext --global-option = "- I/usr/include/gdal" GDAL == 1.10.0 –

-3

cercare di fare: birra installare gdal

dopo che riprovare.

+0

Questa risposta sarebbe molto più utile se hai spiegato OP cosa c'è di sbagliato nel suo caso e in che modo il tuo frammento risolve il problema e quali sono i prerequisiti per il funzionamento di brew. –

+0

'brew' è solo per Mac mentre l'OP usa Ubuntu – Alessiox

0

Anche questo errore si verificava durante l'installazione in un ambiente virtuale di un pacchetto che dipende da GDAL. In questo caso, la soluzione è modificare la dipendenza da GDAL a pygdal nel parametro install_requires in setup.py. In questo modo:

install_requires=['pygdal'],

Problemi correlati