installation de GEOS, PROJ, GDAL / OGR dans un virtualenv python sur Mac OS X


12

J'essaie de configurer un virtualenv python isolé pour travailler sur des projets SIG sur mon Mac OS X. On dirait que je devrai installer le GEOS, PROJ, GDAL / OGR à partir du site kyngchaos ici http://www.kyngchaos.com/ logiciels / frameworks et pas easy_install dans mon virtualenv. Est-ce exact?

Les téléchargements disponibles sur kyngchaos sont des installateurs de pkg et pas seulement un œuf ou bdist de modules python. Donc, je ne suis pas très sûr de ce que l'installateur fait d'autre à l'environnement que de copier des fichiers dans un /Library/Framework/geos.frameworkdossier.

Comment installer une version spécifique de GEOS, PROJ, GDAL / OGR dans mon nouveau virtualenv python? J'apprécierais votre aide / suggestions sur cette question.

Réponses:


4

Si chaque Framework de Kyngchaos est dans le CHEMIN, c'est facile. Chaque framework a un dossier Unix, avec les bibliothèques pour compiler des choses comme pyproj ou geos python où vous voulez, même dans un environnement Python privé (je n'ai jamais eu de problème)

Le seul problème est que le python Gdal est dans le framework Gdal. Mais dans les sites-packages il y a un fichier gdal.pth

Fichier gdal.pth:

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

si vous ne voulez pas le compiler vous-même, copiez ce fichier dans votre virtual pv isolé python


après avoir installé ces projets à la main, via des installateurs tiers (fink / macports / autre) et par d'autres moyens, je vous garantis que la meilleure façon est de passer par Kynchaos! +1000
Ragi Yaser Burhum

@Ragi Yaser Burhum - Je commence à être d'accord avec vous! J'ai essayé d'utiliser Fink pour installer les dépendances nécessaires pour exécuter Cartopy en Python. J'obtiens: "OSError: Impossible de trouver lib geos_c ou de charger l'une de ses variantes" même si libgeos_c.dylib se trouve dans /sw/opt/libgeos3.6.1/lib et j'ai ajouté ce chemin à .bash_profile. Je ne suppose pas que vous ayez des perles de sagesse basées sur vos expériences avec Fink?
user1718097

@use use Homebrew :)
Ragi Yaser Burhum

@RagiYaserBurhum ;-)
user1718097


3

Virtualenv vous permet de provisionner un environnement Python privé , mais ne s'étend pas aux bibliothèques système en dehors de l'univers Python. Les trois packages que vous avez mentionnés sont tous des applications C / C ++ à leur base, donc bien qu'ils aient des interfaces à utiliser avec Python, ils ne peuvent pas être packagés sans interagir avec les bibliothèques C (libc sur up).

En raison de la difficulté à installer ces packages à partir de zéro, en particulier sous OS X, vous voudrez peut-être penser à exécuter une machine virtuelle en bac à sable en utilisant quelque chose comme VirtualBox et installer les packages via apt sur cette machine en bac à sable: alors qu'il est possible de faire la même chose sur OS X, cela ne vaut probablement pas la peine.


C'est une bonne recommandation. J'ai suivi cette approche en utilisant Fusion, pas VirtualBox, mais je pourrais essayer Virtual Box la prochaine fois. J'ai utilisé CentOS pour le système d'exploitation dans la boîte. (Pas le meilleur choix de système d'exploitation en raison de la nature stable et des anciennes versions de Python, etc.)
DavidF

3

Si vous devez utiliser OSX, vous pouvez facilement éviter les complexités d'installation en installant homebrew !

Après cela, les seules commandes que vous devrez saisir sont:

brew install gdal

Il installera automatiquement aussi proj et geos car ce sont des dépendances gdal.


3
Je ne crois pas que cela résout le problème d'accès à gdal à partir d'un virtualenv (je l'ai essayé et cela n'a pas fonctionné)
djq

1
vous pouvez utiliser brew install gdaltant que vous créez votre venv avec l'indicateur --system-site-packages, voir ma réponse ici gis.stackexchange.com/a/345248/155269
88jayto

1

J'ai trouvé un bon article de blog qui fournit une autre solution qui a fonctionné dans mon cas:

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

La seule différence avec le billet de blog est que je devais faire est de télécharger la bonne version de GDAL qui correspondait aux paquets kyngchaos. Dans mon cas, j'utilisais le framework GDAL version 1.10, donc l'installation suivante a réussi

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/

Quittez ensuite le répertoire GDAL et installez sans téléchargement

cd ~
pip install --no-download GDAL

MISE À JOUR: Vous devrez peut-être ajouter des vars env avant d'appeler setup.py pour que l'étape de compilation fonctionne ( voir cette question )

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

0

La réponse de Yellowcap ci-dessus a fonctionné pour moi avec quelques ajustements mineurs:

pip install --no-install n'est plus une option. Au lieu de cela, à l'intérieur du répertoire env:

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

Décompressez le répertoire téléchargé et cd dedans:

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

pip install --no-download n'est également plus une option. Au lieu de cela, restez dans le répertoire GDAL et exécutez:

python setup.py build
python setup.py install

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.