Hice esta pregunta en Stack Overflow antes de darme cuenta de que este sitio existía. Como este sitio es más apropiado, lo preguntaré aquí también.
Estoy tratando de instalar gdal desde pip pip install gdal
dentro de un entorno virtual (Ubuntu). Falla porque no puede encontrarcpl_port.h
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 encabezado 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?
python
gdal
ubuntu
installation
Kevin
fuente
fuente
Respuestas:
La respuesta de selimnairb es cercana pero no tendrá los encabezados a menos que haya instalado libgdal-dev:
con eso hecho
y entonces
La compilación se completó y tengo GDAL en mi entorno virtual. ¡Uf!
(editar 2018) Nota: para asegurarse de instalar la versión correcta y evitar cualquier problema. recuperar la versión con
gdal-config --version
. y entonces:fuente
$ pip install GDAL==10.0
pip install GDAL==1.10.0
.Los archivos de encabezado no se pueden encontrar por alguna razón. Tal vez usted está operando dentro de un entorno virtual o no están donde deberían estar por alguna razón. En cualquier caso, puede especificar los directorios de inclusión al instalar gdal a través de pip.
primera descarga del gdal de python:
en versiones posteriores de pip (> = 9.0.0)
pip install --no-install
no existe:luego especifique dónde están los encabezados:
luego instálalo:
en versiones posteriores de pip (> = 9.0.0)
pip install --no-download
no existe:Aquí hay otra forma de instalar gdal python:
después de eso abra IDLE:
y estás listo para ir!
fuente
gdal-config --libs -> -L/usr/lib -lgdal
pip install --no-install GDAL
el error: ¿__main__.gdal_config_error: [Errno 2] No such file or directory
Alguna idea?brew install gdal
y usé una versión anterior del paquete GDAL Python:pip install --global-option=build_ext --global-option="-L/usr/local/include/gdal/" 'gdal==1.9.1'
Después de seguir un subconjunto de estos consejos, así es como obtuve la instalación de Python GDAL 1.11.0 (la solución debería ser independiente de la versión, ver más abajo) para trabajar en Ubuntu 14.04 con pip:
Instalar dependencias:
pip install pasando la ruta de inclusión (prefijo con
sudo
para la instalación en todo el sistema) e indicando a pip que instale la versión que coincida con la versión GDAL instalada del sistema:fuente
sudo pip install --no-use-wheel -r python_requirements.txt --global-option=build_ext --global-option="-I/usr/include/gdal"
python_requirements.txt especifica una versión anterior de gdal. Dudo que sea honesto, pero todo el conjunto de instalación de pip se completa con éxito. U 12.04x64Instalar el paquete Python
gdal
en virualenv en LinuxGDAL
proporciona un buen conjunto de herramientas para operaciones relacionadas con GEO. Sin embargo, instalarlo en virtualenv en Linux no es una tarea trivial.Esta receta describe cómo hacerlo.
Requisitos
gdal
paquete Python) en virtualenvMétodos de instalación
Existen múltiples métodos para la instalación. Uno requiere compilación y toma unos minutos más.
El otro está usando el paquete de la rueda del
pygdal
paquete y es muy rápido. De todos modos, para crear el paquete de rueda, uno debe crearlo una vez y la creación incluye el paso de compilación de todos modos.Sobre
GDAL
paquetes y versionesGDAL
es una biblioteca general basada en C (++) para cálculos relacionados con GEO.GDAL
Las utilidades se pueden instalar en todo el sistema, lo que hace que las bibliotecas compartidas estén disponibles, pero no instala el paquete Python.GDAL
viene en diferentes versiones y cada distribución de Linux puede instalar por defecto una versión diferente.El paquete Python
gdal
requiere compilación y no es trivial de instalar en sistemas basados en Linux, ya que espera que se establezcan pocas variables ambientales. Esto hace que la instalación en virtualenv sea más difícil.Cada
gdal
versión puede asumir una versión diferenteGDAL
y fallará la instalación si la versión esperada no está presente en el sistema.El paquete Python
pygdal
es una alternativagdal
, que instala exactamente las mismas cosas quegdal
, pero lo hace de una manera mucho más amigable.pygdal
viene en versiones que reflejan laGDAL
versión relacionada . Entonces, teniendo laGDAL
versión 1.10.1 en el sistema, deberá instalar lapygdal
versión 1.10.1.El paquete Python
gdal
(así como tambiénpygdal
) usa el paquete raíz de Python llamadoosgeo
y tiene un conjunto de submódulos, uno de ellososgeo.gdal
.Si es necesario,
GDAL
se pueden instalar y usar versiones distintas de las predeterminadas . Esto está fuera del alcance de esta descripción.Los paquetes de ruedas pueden compilarse de forma cruzada, esto también está fuera de alcance
Instalando
GDAL
en el sistemaComo
pygdal
requiere queGDAL
las bibliotecas compartidas estén presentes, primero debemos instalarlas.Suponiendo
GDAL
que aún no está instalado, las llamadasgdal-config
se quejarán y le darán una pista sobre cómo seguir:Sigue la pista e instálala:
Cada distribución puede usar una versión diferente de
GDAL
. Para saber cuál usamos:Ahora ya sabes,
GDAL
está instalado y la versión es 1.10.1 (la versión puede variar).Instalar
pygdal
desde el paquete fuente (requiere compilación)Actualmente
pygdal
solo se proporciona en el paquete tar.gz, que contiene fuentes de paquetes y requiere compilación.Suponiendo, la versión de
GDAL
es1.10.1
y que nuestro virtualenv ya está activado:Puede tardar un tiempo en completarse, si necesita numpy, lo que también puede requerir cierta compilación. Solo espera
Comprueba, está instalado:
De ahora en adelante, puede usar el paquete osgeo en su código Python como lo desee exactamente de la misma manera que si lo instalara con el
gdal
paquete Python.Crear paquete de ruedas para
pygdal
Tenga en cuenta que los paquetes de rueda deben crearse exactamente para la misma arquitectura, es decir, deben coincidir:
En nuestro caso, también debe coincidir con la versión de
GDAL
instalado.Los siguientes pasos se pueden hacer en virtualenv o no, como lo desee.
Primero, asegúrese de que el paquete de la rueda esté instalado:
Suponiendo que ha
GDAL
instalado y tiene la versión 1.10.1:y espera, hasta que se complete.
Después de esto, encontrará la caseta del subdirectorio y contendrá paquetes con la extensión `whl`:
Instalar
pygdal
desde paquetes de ruedasLa instalación desde paquetes con formato de rueda es mucho más rápida (un segundo en comparación con minutos), ya que no requiere compilación.
Tenga en cuenta que ese directorio con paquetes de ruedas puede tener cualquier nombre, usaremos solo el nombre de la timonera.
Active virtualenv primero.
Asegúrese de tener en el directorio de la timonera los dos paquetes de ruedas necesarios (para
pygdal
ynumpy
)Asegúrese de que
GDAL
esté instalado y la versión coincida con la versión depygdal
.Instalar
pygdal
desde el paquete de la rueda:La timonera -f apuntará al directorio con archivos whl.
No es necesario instalarlo
numpy
, se instala automáticamente.fuente
pygdal
¡¡por la victoria!! pypi : "Virtualenv y setuptools versión amigable de enlaces estándar de Python GDAL" <3Sí, hacer lo siguiente antes de ejecutar PIP parece funcionar:
export CPLUS_INCLUDE_PATH = / usr / include / gdal
exportar C_INCLUDE_PATH = / usr / include / gdal
fuente
El problema con el gip de instalación de pip es que solo obtiene los enlaces, no toda la biblioteca, por lo que puede ser complicado. Una forma de resolverlo es usar el comando pip para descargar, pero no instalar. Luego modifica la ubicación del encabezado desde el archivo de configuración. Luego pip instalar eso. meh
Estaba teniendo el mismo problema, pero me di cuenta de que escribir un script de tela para recompilar gdal y generar los enlaces de Python iba a tomar menos tiempo. Incluso obtienes el beneficio de filegdb con eso. Siga adelante y use lo que escribí o modifíquelo a su gusto.
fuente
Un tiempo después, esto proporciona la ruta de inclusión sin tener que abandonar la instalación de pip: se puede establecer la ruta de inclusión utilizando una variable de entorno.
Suponiendo que los encabezados están en / usr / include / gdal, emita un
export CPLUS_INCLUDE_PATH=/usr/include/gdal
antes de correr pip.
fuente
/usr/include/gdal
Después de buscar una solución a la derecha y a la izquierda, aquí hay algo que funciona para mí en Ubuntu 14.04, incluso desde dentro de un virtualenv sin acceso a los paquetes del sistema:
Instalar dependencias:
Establecer las banderas del compilador:
Instale la versión correspondiente a las bibliotecas del sistema (al momento de escribir Ubuntu Trusty está usando los encabezados 1.10):
fuente
Ahora puede usar la versión amigable de virtualenv y setuptools de pygdal de enlaces estándar de Python GDAL .
fuente
Estaba teniendo problemas similares en una Mac. Así es como lo resolví:
En primer lugar, configuré un entorno virtual Python 2.7 usando virtualenv. La distribución de Python se instaló en un directorio llamado 'env'.
Luego usé fink para instalar gdal
También instalé gdal-dev, pero es posible que esto no haya sido necesario, ya que podría haber sido instalado con gdal.
Verifiqué la versión instalada usando:
En mi instalación, produjo el resultado 1.11.1
La instalación fink de gdal instaló el archivo de encabezado cpl_port.h en / sw / include / gdal1. Comprueba tu propia instalación. Entonces entré:
Eso pareció funcionar para mí, pero aún no he probado la instalación.
fuente
En Fedora 24 que tiene GDAL 2.0.2 en sus repositorios, tuve que instalar el paquete Python de esta manera:
fuente
Recibí un error similar al intentar instalar los enlaces de Python GDAL en una Mac (OS 10.10.5). Instalé el software GDAL base de http://www.kyngchaos.com/software/frameworks usando la descarga "Completa". Tuve que establecer tres variables de entorno.
exportar C_INCLUDE_PATH = / Library / Frameworks / GDAL.framework / Headers export CPLUS_INCLUDE_PATH = / Library / Frameworks / GDAL.framework / Headers export LIBRARY_PATH = / Library / Frameworks / GDAL.framework / Versions / Current / unix / lib
La pieza final fue agregar /Library/Frameworks/GDAL.framework/Programs a mi RUTA.
echo 'export PATH = / Library / Frameworks / GDAL.framework / Programs: $ PATH' >> ~ / .bash_profile
Después de eso, pip pudo instalar GDAL para python. Espero que esto ayude.
fuente
Estos paquetes gdal 0.10.1 funcionan bien para Ubuntu 12.04: https://launchpad.net/~ubuntugis/+archive/ubuntu/ubuntugis-unstable/+sourcepub/4353415/+listing-archive-extra
Paquetes gdal 0.10.1 para otra versión de ubuntu: https://launchpad.net/~ubuntugis/+archive/ubuntu/ubuntugis-unstable/+packages?field.name_filter=gdal&field.status_filter=published&field.series_filter=
fuente
gdal 1.10.1
, y acabo de hacer lo siguientepip install --global-option=build_ext --global-option="-I/usr/include/gdal" gdal==1.10.0
Para responder al aspecto virtualenv específico de la pregunta:
Tenga en cuenta que
pygdal
puede requerir una versión diferente de GDAL, en comparación con lo queGDAL
requiere el paquete de enlaces de python.A continuación se muestra lo que solía obtener en versiones recientes de Fedora (20 y 23).
fuente
Instalación a través de Pip con un solo comando
Suponiendo que el paquete de desarrollo GDAL está instalado y las versiones del archivo de encabezado son correctas, el único comando necesario para instalar GDAL desde los repositorios de PyPI es el siguiente:
Obviamente, esto supone que la ubicación de los archivos de encabezado es
/usr/include/gdal
.Instalar GDAL actualizado
Para instalar GDAL con el comando pip anterior, la versión de los archivos de encabezado debe ser similar a la versión que pip realizará la compilación. GDAL tiene una referencia binaria actualizada en: https://trac.osgeo.org/gdal/wiki/DownloadingGdalBinaries .
Cómo instalar en OpenSUSE
Siguiendo el enlace anterior, hay una URL incrustada que apunta hacia abajo a un conjunto actualizado de paquetes SIG para OpenSUSE 42.1 http://download.opensuse.org/repositories/Application:/Geo/openSUSE_Leap_42.1/Application: Geo.repo
Reemplace con el paquete apropiado. Y si no lo usa,
zypper
hay más información en https://trac.osgeo.org/gdal/wiki/DownloadingGdalBinariesfuente
He tenido el mismo problema en Windows 10. Después de algunos experimentos, vine con esta solución.
PYTHONPATH=c:\python36
PATH=C:\python36\Scripts\;C:\python36\;%PATH%
pip install *.whl
(* .whl del paso 2)fuente
Si está usando Docker, abrimos nuestro contenedor, que simplifica el uso de GDAL y Python 3. El contenedor captura los pasos descritos anteriormente para permitirle usar rápidamente GDAL con sus aplicaciones.
thinkwhere / gdal-python
fuente
Este enfoque funcionó para mí:
O como parte de un Dockerfile:
fuente
Si está ejecutando una distribución basada en Debian, las bibliotecas Python GDAL están disponibles a través de su administrador de paquetes y se pueden instalar simplemente con
sudo apt install python-gdal
osudo apt install python3-gdal
fuente
En Ubuntu 16.04 con conda en el contenedor docker (jupyter stack)
fuente
En ubuntu, una solución más simple para instalar el último gdal para python3: instalar archivos de biblioteca a través de
libgdal-dev
y python wrapper a través depython-gdal
para python2:
fuente
También puede encontrar problemas con el uso de la memoria.
Cuando se ejecuta
pip install gdal==2.2.3
gcc se inicia para compilar algo y aumenta el uso de memoria.Si no tiene suficiente memoria, el compilador falla, con un mensaje como
Para solucionarlo, debe agregar más ram o liberar algunos.
fuente
Si está utilizando Travis CI y necesita una versión reciente de GDAL para Python, aquí hay un ejemplo de cómo
.travis.yml
se vería una parte de un archivo:fuente