# Documentation Django 5.2.8

# Installation de GeoDjango

## Aperçu

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

1. Python et Django

2. Base de données spatiale

3. 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 :

- macOS

- Windows

Utilisation du code source

Comme GeoDjango tire profit des derniers développements de la technologie logicielle géospatiale libre, des versions récentes des bibliothèques sont nécessaires. Si des paquets binaires ne sont pas disponibles sur votre plate-forme, il peut être nécessaire d’installer à partir des sources. Lors de la compilation des bibliothèques à partir des sources, suivez attentivement les consignes, particulièrement si vous êtes débutant.

## Exigences

### Python et Django

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 spatiale

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

Note

PostGIS est recommandé, car c’est la base de données spatiale libre la plus mature et riche en fonctionnalités.

The geospatial libraries required for a GeoDjango installation depends on the spatial database used. The following lists the library requirements, supported versions, and any notes for each of the supported database backends:

Base de données | Bibliothèques requises | Versions prises en charge | Notes
--- | --- | --- | ---
PostgreSQL | GEOS, GDAL, PROJ, PostGIS | 14+ | Exige PostGIS.
MySQL | GEOS, GDAL | 8.0.11+ | Fonctionnalités limitées.
Oracle | GEOS, GDAL | 19+ | XE non pris en charge.
SQLite | GEOS, GDAL, PROJ, SpatiaLite | 3.31.0+ | Nécessite SpatiaLite 4.3+

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

## Installation

### Bibliothèques géospatiales

- Installation des bibliothèques géospatiales

### Installation de la base de données

- Installation de PostGIS
- Installation de SpatiaLite

### Configuration de `DATABASES`

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

### Ajout de `django.contrib.gis` à `INSTALLED_APPS`

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épannage

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

- Poser votre question sur le forum GeoDjango (en anglais).

- File a ticket on the Django trac if you think there’s a bug. Make sure to provide a complete description of the problem, versions used, and specify the component as « GIS ».

### Réglages d’environnement de bibliothèques

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_PATH`

A user may set this environment variable to customize the library paths they want to use. The typical library directory for software built from source is `/usr/local/lib`. Thus, `/usr/local/lib` needs to be included in the `LD_LIBRARY_PATH` variable. For example, the user could place the following in their bash profile:

    export LD_LIBRARY_PATH=/usr/local/lib

#### Définition du chemin de bibliothèque au niveau système

On GNU/Linux systems, there is typically a file in `/etc/ld.so.conf`, which may include additional paths from files in another directory, such as `/etc/ld.so.conf.d`. As the root user, add the custom library path (like `/usr/local/lib`) on a new line in `ld.so.conf`. This is one example of how to do so:

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

For OpenSolaris users, the system library path may be modified using the `crle` utility. Run `crle` with no options to see the current configuration and use `crle -l` to set with the new library path. Be very careful when modifying the system library path:

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

#### Installation de `binutils`

GeoDjango uses the `find_library` function (from the `ctypes.util` Python module) to discover libraries. The `find_library` routine uses a program called `objdump` (part of the `binutils` package) to verify a shared library on GNU/Linux systems. Thus, if `binutils` is not installed on your Linux system then Python’s ctypes may not be able to find your library even if your library path is set correctly and geospatial libraries were built perfectly.

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

    $ sudo apt-get install binutils

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

    $ sudo yum install binutils

## Instructions spécifiques à certaines plates-formes

### macOS

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 :

- Postgres.app (le plus simple et la solution recommandée)

- Homebrew

- Fink

- MacPorts

- Compilation à partir des sources

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.

#### Python

Although macOS comes with Python installed, users can use framework installers provided by the Python Software Foundation. An advantage to using the installer is that macOS’s Python will remain « pristine » for internal operating system use.

Note

Il sera alors nécessaire de modifier la variable d’environnement `PATH` dans votre fichier `.profile` afin que la nouvelle version de Python soit utilisée lorsque vous saisissez `python` dans la ligne de commande :

    export PATH=/Library/Frameworks/Python.framework/Versions/Current/bin:$PATH

#### Postgres.app

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é :

    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.

#### Homebrew

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é :

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

##### Fink

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.

#### MacPorts

MacPorts may be used to install GeoDjango prerequisites on computers running macOS. Because MacPorts still builds the software from source, Xcode is required.

En résumé :

    $ sudo port install postgresql14-server
    $ sudo port install geos
    $ sudo port install proj6
    $ sudo port install postgis3
    $ sudo port install gdal
    $ sudo port install libgeoip

Note

Il sera aussi nécessaire de modifier la variable d’environnement `PATH` dans votre fichier `.profile` afin que les programmes MacPorts soient accessibles dans la ligne de commande :

    export PATH=/opt/local/bin:/opt/local/lib/postgresql14/bin

De plus, ajoutez le réglage `DYLD_FALLBACK_LIBRARY_PATH` afin que les bibliothèques puissent être trouvées par Python :

    export DYLD_FALLBACK_LIBRARY_PATH=/opt/local/lib:/opt/local/lib/postgresql14

### Windows

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.

#### Python

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

#### PostgreSQL

Download the latest PostgreSQL 15.x installer from the EnterpriseDB website. After downloading, run the installer, follow the on-screen directions, and keep the default options unless you know the consequences of changing them.

Note

L’installeur PostgreSQL crée un nouveau superutilisateur de base de données nommé `postgres`. On vous demandera une seule fois de définir le mot de passe, prenez garde de bien vous en souvenir !

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.

Note

En cas d’installation réussie, le serveur PostgreSQL tourne en arrière-plan à chaque démarrage du système sous forme de service Windows. Un groupe de menu de démarrage PostgreSQL 15 sera créé pour contenir des raccourcis pour les programmes Application Stack Builder (ASB) et SQL Shell ; ce dernier lance une commande `psql` dans une fenêtre de commandes.

#### PostGIS

À partir du programme Stack Builder (à lancer en dehors de l’installeur, Démarrer ‣ PostgreSQL 15 ‣ Application Stack Builder), choisissez PostgreSQL 15 (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 15.

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 quatre boîtes de dialogue Oui/Non, l’option par défaut étant Non pour les quatre.

#### OSGeo4W

The OSGeo4W installer helps to install the PROJ, GDAL, and GEOS libraries required by GeoDjango. First, download the OSGeo4W installer, and run it. Select Express Web-GIS Install and click next. In the “Select Packages” list, ensure that GDAL is selected. If any other packages are enabled by default, they are not required by GeoDjango and may be unchecked safely. After clicking next and accepting the license agreements, the packages will be automatically downloaded and installed, after which you may exit the installer.

#### Modification de l’environnement Windows

In order to use GeoDjango, you will need to add your OSGeo4W directories to your Windows system `Path`, as well as create `GDAL_DATA` and `PROJ_LIB` environment variables. The following set of commands, executable with `cmd.exe`, will set this up. Restart your device once this is complete for new environment variables to be recognized:

    set OSGEO4W_ROOT=C:\OSGeo4W
    set GDAL_DATA=%OSGEO4W_ROOT%\apps\gdal\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%"

Note

Il est nécessaire de disposer des droits d’administrateur pour exécuter ces commandes. Dans ce but, lancez une invite de commande en mode administrateur et saisissez les commandes ci-dessus. Vous devez vous déconnecter puis vous reconnecter pour que ces réglages s’appliquent réellement.

Note

Si vous avez personnalisé les répertoires d’installation de OSGeo4W, vous devrez alors aussi modifier de façon cohérente les variables `OSGEO4W_ROOT`.

#### Installation de Django et configuration de base de données

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

#### psycopg

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

    ...\> py -m pip install psycopg

Notes de bas de page

[1]

GeoDjango utilise la routine `find_library()` de `ctypes.util` pour trouver les bibliothèques partagées.