J'ai posé cette question sur Stack Overflow avant de réaliser que ce site existait. Comme ce site est plus approprié, je vais le demander ici aussi.
J'essaie d'installer gdal depuis pip pip install gdal
dans un environnement virtuel (Ubuntu). Il échoue car il ne trouve pascpl_port.h
extensions/gdal_wrap.cpp:2853:22: fatal error: cpl_port.h: No such file or directory
compilation terminated
Cependant, GDAL est correctement installé et le fichier d’en-tête est situé à /usr/include/gdal/cpl_port.h
. Existe-t-il une variable d'environnement pour GDAL qui doit être définie pour que pip puisse trouver les fichiers d'en-tête?
python
gdal
ubuntu
installation
Kevin
la source
la source
Réponses:
La réponse de selimnairb est proche mais vous n'aurez pas les en-têtes si vous n'avez pas installé libgdal-dev:
avec ça fait,
puis
La compilation est terminée et j'ai GDAL dans mon env virtuel. Phew!
(edit 2018) Remarque: pour être sûr d'installer la version correcte et éviter tout problème. récupérer la version avec
gdal-config --version
. puis:la source
$ pip install GDAL==10.0
pip install GDAL==1.10.0
.Les fichiers d'en-tête sont introuvables pour une raison quelconque. Peut-être que vous travaillez dans un environnement virtuel ou qu’ils ne sont pas où ils devraient être pour une raison quelconque. Dans tous les cas, vous pouvez spécifier les répertoires d'inclusion lors de l'installation de gdal via pip.
premier téléchargement de python's gdal:
dans les versions ultérieures de pip (> = 9.0.0)
pip install --no-install
n'existe pas:puis spécifiez où sont les en-têtes:
puis installez-le:
dans les versions ultérieures de pip (> = 9.0.0)
pip install --no-download
n'existe pas:Voici un autre moyen d'installer gdal python:
après cela, ouvrez IDLE:
et vous êtes prêt à partir!
la source
gdal-config --libs -> -L/usr/lib -lgdal
pip install --no-install GDAL
erreur:__main__.gdal_config_error: [Errno 2] No such file or directory
une idée?brew install gdal
et utilisé une version plus ancienne du package GDAL Python:pip install --global-option=build_ext --global-option="-L/usr/local/include/gdal/" 'gdal==1.9.1'
Après avoir suivi un sous-ensemble de ces conseils, voici comment j'ai installé l'installation de Python GDAL 1.11.0 (la solution doit être indépendante de la version, voir ci-dessous) pour fonctionner sur Ubuntu 14.04 avec pip:
Installez des dépendances:
pip installer en passant par le chemin d’inclusion (préfixe avec
sudo
pour l’installation à l’échelle du système) et en demandant à pip d’installer la version correspondant à la version GDAL installée par le système:la source
sudo pip install --no-use-wheel -r python_requirements.txt --global-option=build_ext --global-option="-I/usr/include/gdal"
python_requirements.txt spécifie une version plus ancienne de gdal. Pour être honnête, je doute que ce soit important, mais l'ensemble du programme d'installation du Pip se termine avec succès. U 12.04x64Installation du paquet Python
gdal
dans virualenv sous LinuxGDAL
fournit une jolie boîte à outils pour les opérations liées à GEO. Cependant, l’installer sur virtualenv sous Linux n’est pas une tâche aisée.Cette recette décrit comment faire cela.
Exigences
gdal
le paquet Python) dans virtualenvMéthodes d'installation
Il existe plusieurs méthodes d'installation. L'une nécessite une compilation et prend quelques minutes de plus.
L'autre utilise le paquet de roue
pygdal
et est très rapide. Quoi qu'il en soit, pour créer le paquetage wheel, il faut le créer une fois et la création inclut quand même l'étape de compilation.À propos des
GDAL
packages et des versionsGDAL
est une bibliothèque générale basée sur C (++) pour les calculs liés à GEO.GDAL
Les utilitaires peuvent être installés à l’échelle du système, ce qui rend les bibliothèques partagées disponibles, mais n’installe pas le paquet Python lui-même.GDAL
existe en différentes versions et chaque distribution Linux peut installer par défaut une version différente.Le paquet Python
gdal
nécessite une compilation et son installation sur des systèmes Linux n'est pas une mince affaire, car il n'attend que peu de variables d'environnement. Cela rend l’installation dans virtualenv plus difficile.Chaque
gdal
version peut assumer une version différente deGDAL
et échouera l’installation si la version attendue n’est pas présente sur le système.Le paquet Python
pygdal
est une alternative àgdal
, qui installe exactement la même chose quegdal
, mais le fait de manière beaucoup plus conviviale et virtuelle.pygdal
vient dans les versions reflétant laGDAL
version connexe . Donc, ayant laGDAL
version 1.10.1 dans le système, vous devez installer lapygdal
version 1.10.1.Le paquet Python
gdal
(ainsi quepygdal
) utilise le paquet python racine nomméosgeo
et possède un ensemble de sous-modules, l'un d'euxosgeo.gdal
.Si nécessaire, d'autres versions que les versions par défaut
GDAL
peuvent être installées et utilisées. Ceci sort du cadre de cette description.Les paquets de roues peuvent être compilés de manière croisée, ceci est également hors de portée.
Installation
GDAL
dans le systèmeComme
pygdal
exige desGDAL
bibliothèques partagées à présent, il faut les installer en premier.En supposant qu’il
GDAL
n’est pas encore installé, l’appelgdal-config
se plaindra et vous indiquera comment faire un suivi:Suivez l'indice et installez-le:
Chaque distribution peut utiliser une version différente de
GDAL
. Pour savoir ce que nous utilisons:Maintenant, vous savez,
GDAL
est installé et la version est 1.10.1 (la version peut varier).Installer à
pygdal
partir du paquet source (nécessite une compilation)Actuellement, il
pygdal
n’est fourni que dans le package tar.gz, qui contient les sources du package et nécessite une compilation.En supposant que la version de
GDAL
is1.10.1
et que notre virtualenv soit déjà activée:Cela peut prendre un peu de temps, s'il nécessite Numpy, ce qui peut également nécessiter une compilation. Attends.
Vérifiez, il est installé:
À partir de maintenant, vous pouvez utiliser le paquet osgeo dans votre code Python à votre guise, exactement de la même manière que si vous l'installiez avec un
gdal
paquet Python.Créer un paquet de roue pour
pygdal
Notez que les packages de roue doivent être créés pour une architecture identique, à savoir:
Dans notre cas, il doit également correspondre à la version
GDAL
installée.Les étapes suivantes peuvent être effectuées dans virtualenv ou non, comme vous le souhaitez.
Tout d’abord, assurez-vous que le paquet de roue est installé:
En supposant que vous ayez
GDAL
installé la version 1.10.1:et attendez, jusqu'à ce qu'il se termine.
Après cela, vous trouverez le sous-répertoire timonerie qui contiendra les paquets avec l’extension `whl`:
Installer à
pygdal
partir de la roueL'installation à partir de packages au format Wheel est beaucoup plus rapide (une seconde par rapport aux minutes), car elle ne nécessite pas de compilation.
Notez que ce répertoire avec les paquets de roue peut avoir n'importe quel nom, nous utiliserons simplement le nom timonerie.
Activez d'abord virtualenv.
Assurez-vous que vous avez dans le répertoire de la timonerie les deux ensembles de roues requis (pour
pygdal
etnumpy
).Ensure,
GDAL
est installé et la version correspond à la version depygdal
.Installer à
pygdal
partir du paquet de roue:La timonerie -f doit pointer vers le répertoire contenant les fichiers whl.
Il n'y a pas besoin d'installer
numpy
, il s'installe automatiquement.la source
pygdal
pour la victoire!! pypi : "Version conviviale pour virtualenv et setuptools des liaisons Python GDAL standard" <3Oui, les opérations suivantes avant d'exécuter PIP semblent fonctionner:
exportez CPLUS_INCLUDE_PATH = / usr / include / gdal
exportation C_INCLUDE_PATH = / usr / include / gdal
la source
Le problème avec pip qui installe gdal est qu’il n’obtient que les liaisons, pas toute la bibliothèque, ce qui peut poser des problèmes. Une façon de résoudre ce problème consiste à utiliser la commande pip pour télécharger, mais pas pour installer. Ensuite, vous modifiez l'emplacement de l'en-tête à partir du fichier de configuration. Ensuite, vous pouvez installer ça. meh.
J'avais le même problème, mais je me suis rendu compte que l'écriture d'un script de structure pour recompiler gdal et générer les liaisons Python allait prendre moins de temps. Vous obtenez même l'avantage de filegdb avec cela. Allez-y et utilisez ce que j'ai écrit ou modifiez-le à votre guise.
la source
Peu de temps après, cela fournit le chemin d’inclusion sans avoir à sortir de l’installation du pip: Vous pouvez définir le chemin d’inclusion à l’aide d’une variable d’environnement.
En supposant que les en-têtes se trouvent dans / usr / include / gdal, envoyez un
export CPLUS_INCLUDE_PATH=/usr/include/gdal
avant d'exécuter pip.
la source
/usr/include/gdal
Après avoir cherché une solution à droite et à gauche, voici quelque chose qui fonctionne pour moi sur Ubuntu 14.04, même à partir d'un environnement virtuel sans accès aux packages système:
Installez des dépendances:
Définissez les drapeaux du compilateur:
Installez la version correspondant aux bibliothèques système (au moment de la rédaction de ce document, Ubuntu Trusty utilise les en-têtes 1.10):
la source
Maintenant, vous pouvez utiliser la version conviviale virtualenv et setuptools des liaisons pygon GDAL standard pygdal .
la source
J'avais des problèmes similaires sur un Mac. Voici comment je l'ai résolu:
Tout d'abord, j'ai configuré un environnement virtuel Python 2.7 à l'aide de virtualenv. La distribution Python a été installée dans un répertoire appelé 'env'.
J'ai ensuite utilisé fink pour installer gdal
J'ai aussi installé gdal-dev mais cela n’a peut-être pas été nécessaire car il a peut-être déjà été installé avec gdal.
J'ai vérifié la version installée à l'aide de:
Sur mon installation, il a donné le résultat 1.11.1
L'installation fink de gdal a installé le fichier d'en-tête cpl_port.h dans / sw / include / gdal1. Vérifiez votre propre installation. Je suis ensuite entré:
Cela a semblé fonctionner pour moi mais je n'ai pas encore testé l'installation.
la source
Sur Fedora 24 qui a GDAL 2.0.2 dans ses référentiels, je devais installer le paquet Python comme ceci:
la source
J'obtenais une erreur similaire en essayant d'installer les liaisons python GDAL sur un mac (OS 10.10.5). J'ai installé le logiciel GDAL de base à partir de http://www.kyngchaos.com/software/frameworks en utilisant le téléchargement "Complet". Je devais définir trois variables d'environnement.
exportation C_INCLUDE_PATH = / Bibliothèque / Frameworks / GDAL.framework / En-têtes exportation CPLUS_INCLUDE_PATH = / Bibliothèque / Frameworks / GDAL.framework / Exportations en-têtes LIBRARY_PATH = / Bibliothèque / Frameworks / GDAL.framework / Versions / Current / unix / lib
La dernière pièce consistait à ajouter /Library/Frameworks/GDAL.framework/Programs à PATH.
echo 'export PATH = / Bibliothèque / Frameworks / GDAL.framework / Programmes: $ PATH' >> ~ / .bash_profile
Après cela, pip a pu installer GDAL pour python. J'espère que cela t'aides.
la source
Ces paquets 0.1.10.1 fonctionnent bien pour Ubuntu 12.04: https://launchpad.net/~ubuntugis/+archive/ubuntu/ubuntugis-unstable/+sourcepub/4353415/+listing-archive-extra
Gdal Packages 0.10.1 pour d'autres versions d'ubuntu: https://launchpad.net/~ubuntugis/+archive/ubuntu/ubuntugis-unstable/+packages?field.name_filter=gdal&field.status_filter=published&field.series_filter=
la source
gdal 1.10.1
, et juste fait ce qui suitpip install --global-option=build_ext --global-option="-I/usr/include/gdal" gdal==1.10.0
Pour répondre à l’aspect spécifique à la virtualité de la question:
Attention,
pygdal
une version de GDAL différente de celle requise par leGDAL
package de liaisons python peut être requise.Vous trouverez ci-dessous ce que je cherchais dans les versions récentes de Fedora (20 et 23).
la source
Installation via Pip avec une seule commande
En supposant que le package de développement GDAL soit installé et que les versions du fichier d’en-tête soient correctes, la seule commande nécessaire pour installer GDAL à partir des dépôts PyPI est la suivante:
Cela suppose évidemment que l'emplacement des fichiers d'en-tête est
/usr/include/gdal
.Installer GDAL à jour
Pour installer GDAL à l'aide de la commande pip ci-dessus, la version des fichiers d'en-tête doit être similaire à celle utilisée par pip pour la construction. GDAL a une référence binaire mise à jour sur: https://trac.osgeo.org/gdal/wiki/DownloadingGdalBinaries .
Comment installer sur OpenSUSE
En suivant le lien ci-dessus, une URL est intégrée à un ensemble de packages SIG mis à jour pour OpenSUSE 42.1 http://download.opensuse.org/repositories/Application:/Geo/openSUSE_Leap_42.1/Application: Geo.repo
Remplacez-le par le paquet approprié. Et si vous n'utilisez pas, vous
zypper
trouverez plus d'informations à l' adresse https://trac.osgeo.org/gdal/wiki/DownloadingGdalBinaries.la source
J'ai eu le même problème sous Windows 10. Après quelques expériences, je suis arrivé avec cette solution.
PYTHONPATH=c:\python36
PATH=C:\python36\Scripts\;C:\python36\;%PATH%
pip install *.whl
(* .whl de step2)la source
Si vous utilisez Docker, nous avons ouvert le code source de notre conteneur, ce qui simplifie l'utilisation de GDAL et de Python 3. Le conteneur capture les étapes décrites ci-dessus pour vous permettre d'utiliser rapidement GDAL avec vos applications.
thinkwhere / gdal-python
la source
Cette approche a fonctionné pour moi:
Ou en tant que partie d'un fichier Dockerfile:
la source
Si vous utilisez une distribution basée sur Debian, les bibliothèques python GDAL sont disponibles via votre gestionnaire de paquets et peuvent être simplement installées avec
sudo apt install python-gdal
ousudo apt install python3-gdal
la source
Sur Ubuntu 16.04 avec un conteneur in-docker (pile jupyter)
la source
Dans Ubuntu, une solution plus simple pour installer la dernière version de gdal pour python3: installer les fichiers de bibliothèque via
libgdal-dev
et python wrapper viapython-gdal
pour python2:
la source
Vous pouvez également rencontrer des problèmes avec l'utilisation de la mémoire.
Lorsque vous exécutez
pip install gdal==2.2.3
gcc, lancez pour compiler quelque chose et augmente l'utilisation de la mémoire.Si vous n’avez pas assez de mémoire, le compilateur échoue, avec un message comme
Pour résoudre ce problème, vous devez ajouter plus de RAM ou en libérer.
la source
Si vous utilisez Travis CI et avez besoin d’une version récente de GDAL pour Python, voici un exemple de la partie d’un
.travis.yml
fichier qui pourrait ressembler à ceci:la source