2012-07-04 10 views
16

Estoy tratando de instalar gdal desde pip pip install gdal dentro de un entorno virtual (Ubuntu). Se produce un error porque no puede encontrar cpl_port.hPython GDAL paquete falta archivo de encabezado cuando se instala a través de pip

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

Sin embargo GDAL está instalado correctamente y el archivo de cabecera se encuentra en /usr/include/gdal/cpl_port.h. ¿Hay alguna variable de entorno para GDAL que deba establecerse para que pip encuentre los archivos de encabezado?

Respuesta

5

Usando PIP:

pip install --no-install GDAL 

Entonces CD en ENV/build/GDAL

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

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

Usando Buildout:

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

Esto también podría ser 'incluir-dirs =/Library/Frameworks/GDAL.framework/Versiones/2.1/cabeceras /' en OSX Si ha instalado w/Kyngchaos ... – Owen

17

Como se sugiere en the other thread, la exportación de algunas variables de shell antes de ejecutar pip funcionó a la perfección. Se puede encontrar una ruta para *_INCLUDE_PATH 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

Esto fija para mí, pero también vea la respuesta de @Neil Smith: en Ubuntu 14.04, debe coincidir con la versión de libgdal instalada en el sistema. – Gabriel

+0

Todavía creo que esto es un error. gdal_wrap.cpp debería #include "gdal/cpl_port.h" en lugar de solo "cpl_port.h" –

+0

Definitivamente NO funcionó para mí. Todavía el mismo error cpl_port.h. Usando OpenSUSE – DanCat

7

respuesta de Tomyun trabajó para mí, con la condición de que usted tiene que asegurarse de que la versión de GDAL-dev instalado a través de apt-get coincide con la versión que se instala de forma pip.

Para Ubuntu 14.04, los comandos son:

# 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

también uso Ubuntu 14.04. Para mí no funcionó (no tengo virtualenv). Solo cuando he cambiado la última fila a esta: sudo pip3 install --global-option = build_ext --global-option = "- I/usr/include/gdal" GDAL == 1.10.0 –

-3

tratar de hacer: cerveza instalar gdal

después de que intentarlo de nuevo.

+0

Esta respuesta sería Mucho más útil si le explicaste a OP qué es lo que está mal en su caso y de qué manera tu fragmento resuelve el problema, y ​​cuáles son los requisitos previos para que funcione. –

+0

'brew' es solo para Mac, mientras que OP usa Ubuntu – Alessiox

0

También recibí este error al probar la instalación en un entorno virtual de un paquete mío que depende de GDAL. En este caso, la solución es cambiar la dependencia de GDAL a pygdal en el parámetro install_requires en setup.py. De este modo:

install_requires=['pygdal'],

Cuestiones relacionadas