Installation de GeoDjangoLien vers cette rubrique

AperçuLien vers cette rubrique

En général, l’installation de GeoDjango requiert :

  1. Python et Django

  2. Base de données spatiale

  3. Installation des bibliothèques géospatiales

Des détails au sujet de chaque exigence et des instructions d’installation sont fournies dans les sections ci-dessous. De plus, des instructions spécifiques à des plates-formes particulières sont disponibles pour :

ExigencesLien vers cette rubrique

Python et DjangoLien vers cette rubrique

Comme GeoDjango est inclus dans Django, référez-vous aux instructions d’installation de Django pour des détails sur l’installation.

Base de données spatialeLien vers cette rubrique

PostgreSQL (avec PostGIS), MySQL (essentiellement avec le moteur MyISAM), Oracle et SQLite (avec SpatiaLite) sont les bases de données spatiales actuellement prises en charge.

Les bibliothèques géospatiales requises pour une installation de GeoDjango dépendent de la base de données spatiale utilisée. Le tableau ci-après présente les bibliothèques requises, les versions prises en charge et d’éventuelles notes pour les différents moteurs de base de données :

Base de données

Bibliothèques requises

Versions prises en charge

Notes

PostgreSQL

GEOS, GDAL, PROJ.4, PostGIS

9.5+

Exige PostGIS.

MySQL

GEOS, GDAL

5.6.1+

Fonctionnalités limitées.

Oracle

GEOS, GDAL

12.2+

XE non pris en charge.

SQLite

GEOS, GDAL, PROJ.4, SpatiaLite

3.8.3+

Nécessite SpatiaLite 4.3+

Voir aussi cette matrice comparative sur le Wiki OSGeo pour des combinaisons possibles entre PostgreSQL/PostGIS/GEOS/GDAL.

InstallationLien vers cette rubrique

Bibliothèques géospatialesLien vers cette rubrique

Installation de la base de donnéesLien vers cette rubrique

Configuration de DATABASESLien vers cette rubrique

Définissez le réglage ENGINE à l’un des moteurs spatiaux.

Ajout de django.contrib.gis à INSTALLED_APPSLien vers cette rubrique

Comme pour d’autres applications contribuées dans Django, il suffit d’ajouter django.contrib.gis à INSTALLED_APPS dans vos réglages. Ceci afin que les gabarits gis puissent être découverts ; dans le cas contraire, certaines fonctions comme l’interface d’administration géographique ou les plans de sites KML ne fonctionneraient pas correctement.

DépannageLien vers cette rubrique

Si vous ne trouvez pas de solution à votre problème sur cette page, participez alors à la communauté ! Vous pouvez :

  • Join the #django-geo IRC channel on Libera.Chat. Please be patient and polite – while you may not get an immediate response, someone will attempt to answer your question as soon as they see it.

  • Poser votre question sur la liste de diffusion GeoDjango (en anglais).

  • Créer un ticket dans le trac de Django si vous pensez qu’il y a un bogue. Prenez soin de fournir une description complète du problème, les versions utilisées et indiquez le composant « GIS ».

Réglages d’environnement de bibliothèquesLien vers cette rubrique

Le problème de loin le plus fréquent lors de l’installation de GeoDjango est que les bibliothèques partagées externes (par ex. GEOS et GDAL) ne sont pas trouvées [1]. Typiquement, la cause de ce problème est que le système d’exploitation ne connaît pas les répertoires dans lesquels sont installées les bibliothèques compilées à partir de leurs sources.

En général, le chemin de bibliothèque peut être défini pour chaque utilisateur en définissant une variable d’environnement ou en configurant un chemin de bibliothèque global pour tout le système.

Variable d’environnement LD_LIBRARY_PATHLien vers cette rubrique

Un utilisateur peut définir cette variable d’environnement pour personnaliser les chemins de bibliothèques qu’ils souhaitent utiliser. Le répertoire de bibliothèques traditionnel pour du logiciel compilé depuis les sources est /usr/local/lib. Il faut donc inclure /usr/local/lib dans la variable LD_LIBRARY_PATH. Par exemple, voici ce qu’un utilisateur pourrait ajouter dans son fichier de profil bash :

Shell
export LD_LIBRARY_PATH=/usr/local/lib

Définition du chemin de bibliothèque au niveau systèmeLien vers cette rubrique

Sur les systèmes GNU/Linux, il existe le plus souvent un fichier /etc/ld.so.conf qui peut contenir des chemins supplémentaires provenant de fichiers d’un autre répertoire, tel que /etc/ld.so.conf.d. En tant qu’utilisateur root, ajoutez le chemin de bibliothèque personnalisé (comme /usr/local/lib) sur une nouvelle ligne dans ld.so.conf. Ceci est un exemple de la façon dont on peut le faire :

Shell
$ sudo echo /usr/local/lib >> /etc/ld.so.conf
$ sudo ldconfig

Pour les utilisateurs d’OpenSolaris, le chemin des bibliothèques systèmes peut être modifié par l’utilitaire crle. Exécutez crle sans option pour afficher la configuration actuelle et exécutez crle -l pour définir un nouveau chemin de bibliothèque. Soyez très prudent lors de la modification de chemins de bibliothèques systèmes :

Shell
# crle -l $OLD_PATH:/usr/local/lib

Installation de binutilsLien vers cette rubrique

GeoDjango utilise la fonction find_library (provenant du module Python ctypes.util) pour chercher les bibliothèques. La routine find_library utilise un programme nommé objdump (faisant partie du paquet binutils) pour vérifier la présence d’une bibliothèque partagée sur les systèmes GNU/Linux. De ce fait, si binutils n’est pas installé sur votre système Linux, le module ctypes de Python pourrait ne pas trouver une bibliothèque même si le chemin des bibliothèques est correctement défini et que les bibliothèques géospatiales ont été compilées avec succès.

Le paquet binutils peut être installé sur les systèmes Debian et Ubuntu en utilisant la commande suivante :

Shell
$ sudo apt-get install binutils

De même, sur les systèmes Red Hat et CentOS :

Shell
$ sudo yum install binutils

Instructions spécifiques à certaines plates-formesLien vers cette rubrique

macOSLien vers cette rubrique

En raison de la variété des systèmes d’empaquetage disponibles pour macOS, il existe différentes options pour installer GeoDjango. Ces options sont :

Cette section inclut aussi des instructions pour installer une version mise à jour de Python à partir de paquets fournis par la fondation Python Software, mais ce n’est pas une obligation.

PythonLien vers cette rubrique

Même si Python est préinstallé sur macOS, il est possible de le réinstaller avec des paquets fournis par la fondation Python Software. Un des avantages de ces installeurs est que la version Python propre à macOS et utilisée en interne par le système d’exploitation n’est pas touchée.

Postgres.appLien vers cette rubrique

Postgres.app est un serveur PostgreSQL indépendant qui inclut l’extension PostGIS. Il sera aussi nécessaire d’installer gdal et libgeoip avec Homebrew.

Après avoir installé Postgres.app, ajoutez ce qui suit à votre fichier .bash_profile afin de pouvoir exécuter les programmes correspondants à partir de la ligne de commande. Remplacez X.Y par la version de PostgreSQL dans le paquet Postgres.app que vous avez installé :

Shell
export PATH=$PATH:/Applications/Postgres.app/Contents/Versions/X.Y/bin

Vous pouvez vérifier si le chemin est correctement défini en tapant which psql dans une invite de commande.

HomebrewLien vers cette rubrique

Homebrew met à disposition des « recettes » pour la compilation de binaires et de paquets à partir des sources. Il fournit des recettes pour les prérequis de GeoDjango sur les ordinateurs Macintosh tournant sous macOS. Dans la mesure où Homebrew compile les logiciels à partir de leurs sources, Xcode est indispensable.

En résumé :

Shell
$ brew install postgresql
$ brew install postgis
$ brew install gdal
$ brew install libgeoip

Paquets KyngChaosLien vers cette rubrique

William Kyngesburye fournit un certain nombre de paquets binaires de bibliothèques géospatiales qui aident à l’installation de GeoDjango sur macOS sans devoir les compiler à partir des sources. Cependant, Xcode est toujours nécessaire afin de pouvoir compiler les adaptateurs de base de données Python psycopg2 (pour PostGIS).

Téléchargez les paquets des infrastructures suivantes :

  • UnixImageIO

  • PROJ

  • GEOS

  • SQLite3 (y compris la bibliothèque SpatiaLite)

  • GDAL

Installez les paquets dans l’ordre présenté ci-dessus, car les paquets GDAL et SQLite ont besoin des paquets qui les précèdent dans la liste.

Après cela, vous pouvez aussi installer les paquets binaires KyngChaos pour PostgreSQL et PostGIS.

Après avoir installé les paquets binaires, il faut encore ajouter ce qui suit à votre fichier .profile afin de pouvoir exécuter les programmes correspondants à partir de la ligne de commande :

Shell
export PATH=/Library/Frameworks/UnixImageIO.framework/Programs:$PATH
export PATH=/Library/Frameworks/PROJ.framework/Programs:$PATH
export PATH=/Library/Frameworks/GEOS.framework/Programs:$PATH
export PATH=/Library/Frameworks/SQLite3.framework/Programs:$PATH
export PATH=/Library/Frameworks/GDAL.framework/Programs:$PATH
export PATH=/usr/local/pgsql/bin:$PATH
psycopg2Lien vers cette rubrique

Après avoir installé les binaires KyngChaos et avoir modifié la variable PATH comme expliqué plus haut, psycopg2 peut être installé en utilisant la commande suivante :

Shell
$ python -m pip install psycopg2
FinkLien vers cette rubrique

Kurt Schwehr a eu la bonté de créer des paquets GeoDjango pour les utilisateurs du système de paquets Fink. Différents paquets sont disponibles (commençant par django-gis), en fonction de la version de Python que vous souhaitez utiliser.

MacPortsLien vers cette rubrique

MacPorts peut être utilisé pour installer les prérequis de GeoDjango sur les ordinateurs tournant sous macOS. Dans la mesure où MacPorts compile les logiciels à partir de leurs sources, Xcode est indispensable.

En résumé :

Shell
$ sudo port install postgresql93-server
$ sudo port install geos
$ sudo port install proj
$ sudo port install postgis
$ sudo port install gdal +geos
$ sudo port install libgeoip

WindowsLien vers cette rubrique

Suivez scrupuleusement l’ordre des sections suivantes afin d’installer GeoDjango sur Windows. Dans ce tutoriel, nous installerons les versions 64 bits de chaque application.

PythonLien vers cette rubrique

Installez une version 64 bits de Python. Voir Installation de Python pour plus d’informations.

PostgreSQLLien vers cette rubrique

Téléchargez la dernière version de l”installeur PostgreSQL 12.x à partir du site Web EnterpriseDB. Puis, lancez cet installeur, suivez les instructions qui apparaissent et conservez les options par défaut, sauf si vous connaissez les conséquences de leur modification.

Lorsque l’installeur a terminé, il demande de lancer Stack Builder en quittant. Laissez cette option cochée, car c’est nécessaire pour installer PostGIS.

PostGISLien vers cette rubrique

À partir du programme Stack Builder (à lancer en dehors de l’installeur, Démarrer ‣ PostgreSQL 12 ‣ Application Stack Builder), choisissez PostgreSQL 12 (x64) on port 5432 dans le menu déroulant et cliquez sur Suivant. Ouvrez l’arborescence de menu Categories ‣ Spatial Extensions et choisissez PostGIS X.Y for PostgreSQL 12.

Après avoir cliqué sur suivant, vous devez confirmer le paquet sélectionné et le « Download directory ». Cliquez une nouvelle fois sur suivant, PostGIS sera téléchargé et vous devrez encore cliquer sur suivant pour lancer l’installeur PostGIS. Choisissez les options par défaut lors de l’installation. Le processus d’installation contient trois boîtes de dialogue Oui/Non, l’option par défaut étant Non pour les trois.

OSGeo4WLien vers cette rubrique

L”installeur OSGeo4W aide à l’installation des bibliothèques PROJ, GDAL et GEOS requises par GeoDjango. Commencez par télécharger l”`installeur OSGeo4W`_ (64bit) et exécutez-le. Choisissez Express Web-GIS Install et cliquez sur suivant. Dans la liste de sélection des paquets, contrôlez que GDAL est sélectionné ; MapServer est aussi sélectionné par défaut, mais n’est pas nécessaire pour GeoDjango et peut être désélectionné sans problème. Après avoir cliqué sur suivant et accepté l’accord de licence, les paquets sont automatiquement téléchargés et installés ; vous pouvez ensuite quitter l’installeur.

Modification de l’environnement WindowsLien vers cette rubrique

Afin de pouvoir utiliser GeoDjango, il est nécessaire d’ajouter les répertoires OSGeo4W au chemin Path du système Windows. Il faut également créer les variables d’environnement GDAL_DATA et PROJ_LIB. Les commandes ci-après, exécutables avec cmd.exe configurent tout cela. Redémarrez votre appareil une fois que tout est terminé afin que les nouvelles variables d’environnement soient reconnues :

Bat
set OSGEO4W_ROOT=C:\OSGeo4W64
set GDAL_DATA=%OSGEO4W_ROOT%\share\gdal
set PROJ_LIB=%OSGEO4W_ROOT%\share\proj
set PATH=%PATH%;%OSGEO4W_ROOT%\bin
reg ADD "HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment" /v Path /t REG_EXPAND_SZ /f /d "%PATH%"
reg ADD "HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment" /v GDAL_DATA /t REG_EXPAND_SZ /f /d "%GDAL_DATA%"
reg ADD "HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment" /v PROJ_LIB /t REG_EXPAND_SZ /f /d "%PROJ_LIB%"

Installation de Django et configuration de base de donnéesLien vers cette rubrique

installez Django sur votre système. Il est recommandé de créer un environnement virtuel pour chaque projet que vous créez.

psycopg2Lien vers cette rubrique

Le module Python psycopg2 fournit l’interface entre Python et la base de données PostgreSQL. psycopg2 peut être installé par pip dans votre environnement virtuel Python

Shell
...\> py -m pip install psycopg2

Notes de bas de page