Instalar GEOS, PROJ, GDAL / OGR en un python virtualenv en Mac OS X


12

Estoy tratando de configurar un Python virtualenv aislado para trabajar en proyectos SIG en mi Mac OS X. Parece que necesitaré instalar GEOS, PROJ, GDAL / OGR desde el sitio de Kyngchaos aquí http://www.kyngchaos.com/ software / frameworks y no fácil_instalarlo en mi virtualenv. ¿Es eso exacto?

Las descargas disponibles en Kyngchaos son instaladores de paquetes y no solo un huevo o bdist de módulos de Python. Por lo tanto, no estoy muy seguro de qué más está haciendo el instalador para el entorno que no sea simplemente copiar archivos a la /Library/Framework/geos.frameworkcarpeta.

¿Cómo haría para instalar una versión específica de GEOS, PROJ, GDAL / OGR en mi nuevo python virtualenv? Agradecería su ayuda / sugerencias sobre este tema.

Respuestas:


4

Si cada Marco de Kyngchaos está en la RUTA, es fácil. Cada marco tiene una carpeta Unix, con las bibliotecas para compilar cosas como pyproj o geos python donde quieras, incluso en un entorno privado de Python (nunca he tenido un problema)

El único problema es que Gdal Python está en el Marco de Gdal. Pero en los paquetes del sitio hay un archivo gdal.pth

archivo gdal.pth:

import sys; sys.path.insert(0,'/Library/Frameworks/GDAL.framework/Versions/1.7/Python/site-packages')

si no desea compilarlo usted mismo, copie este archivo en su python virtualenv aislado


Después de haber instalado esos proyectos a mano, a través de instaladores de terceros (fink / macports / lo que sea) y por otros medios, te garantizo que la mejor manera es a través de Kynchaos. +1000
Ragi Yaser Burhum

@Ragi Yaser Burhum - ¡Estoy empezando a estar de acuerdo contigo! He estado tratando de usar Fink para instalar las dependencias necesarias para ejecutar Cartopy en Python. Obtengo: "OSError: No se pudo encontrar lib geos_c o cargar ninguna de sus variantes" a pesar de que libgeos_c.dylib está en /sw/opt/libgeos3.6.1/lib y he agregado esa ruta a .bash_profile. ¿Supongo que no tienes perlas de sabiduría basadas en tus experiencias con Fink?
user1718097

@use use Homebrew :)
Ragi Yaser Burhum

@RagiYaserBurhum ;-)
usuario1718097


3

Virtualenv le permite aprovisionar un entorno privado de Python , pero no se extiende a las bibliotecas del sistema fuera del universo de Python. Los tres paquetes que mencionó son todas aplicaciones C / C ++ en su núcleo, por lo que si bien tienen interfaces para usar con Python, no se pueden empaquetar sin interactuar con las bibliotecas C (libc en adelante).

Debido a la dificultad de instalar esos paquetes desde cero, particularmente en OS X, es posible que desee pensar en ejecutar una máquina virtual de espacio aislado usando algo como VirtualBox e instalar los paquetes a través de apt en esa máquina de espacio aislado: mientras es posible hacer lo mismo en OS X, probablemente no valga la pena el esfuerzo.


Esta es una buena recomendación. Seguí este enfoque usando Fusion, no VirtualBox, pero podría probar Virtual Box la próxima vez. Usé CentOS para el sistema operativo en la caja. (No es la mejor opción de sistema operativo debido a la naturaleza estable y las versiones anteriores de Python, etc.)
DavidF

3

Si necesita usar OSX, puede evitar fácilmente las complejidades de instalación instalando homebrew .

Después de esto, los únicos comandos que deberá ingresar son:

brew install gdal

También instalará automáticamente proj y geos porque son dependencias de gdal.


3
No creo que esto aborde el problema de acceder a gdal desde virtualenv (lo probé y no funcionó)
djq

1
puede usar brew install gdalsiempre que cree su venv con el indicador --system-site-packages, vea mi respuesta aquí gis.stackexchange.com/a/345248/155269
88jayto

1

Encontré una buena publicación de blog que proporciona otra solución que funcionó en mi caso:

http://linfiniti.com/2013/02/installing-python-gdal-into-a-python-virtualenv-in-osx/

La única diferencia con la publicación del blog es que tuve que hacer es descargar la versión correcta de GDAL que coincidía con los paquetes de Kyngchaos. En mi caso, estaba usando GDAL Framework versión 1.10, por lo que la siguiente instalación fue exitosa

source venv/bin/activate
pip install --no-install GDAL==1.10.0
cd venv/build/GDAL
python setup.py build_ext\
    --gdal-config=/Library/Frameworks/GDAL.framework/Versions/1.10/unix/bin/gdal-config\
    --library-dirs=/Library/Frameworks/GDAL.framework/Versions/1.10/unix/lib/\
    --include-dirs=/Library/Frameworks/GDAL.framework/Versions/1.10/Headers/

Luego salga del directorio GDAL e instálelo sin descargar

cd ~
pip install --no-download GDAL

ACTUALIZACIÓN: es posible que tenga que agregar algunos entornos antes de llamar a setup.py para que el paso de compilación funcione ( consulte esta pregunta )

export CFLAGS=-Qunused-arguments export CPPFLAGS=-Qunused-arguments

0

La respuesta de Yellowcap anterior funcionó para mí con algunos pequeños ajustes:

pip install --no-install ya no es una opción. En cambio, dentro del directorio env:

pip download GDAL==1.11.2 (or whichever version you want)

Descomprima el directorio descargado y cd en él:

tar -zxvf GDAL-1.11.2.tar.gz
cd GDAL-1.11.2

pip install --no-download ya no es una opción. En su lugar, quédese en el directorio GDAL y ejecute:

python setup.py build
python setup.py install

0

El instalador de NextGIS ha aislado gdal, geos, proj, etc. y enlaces de python (Python 2.7) a gdal. La instalación no se ve afectada en las bibliotecas del sistema (solo varias variables de entorno en bash_profile).

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.