---
title: "Installation de GeoDjango"
version: 2.0
locale: fr
source: https://docs.djangoproject.com/fr/2.0/ref/contrib/gis/install/
canonical: https://djangodocs.dev/fr/2.0/ref/contrib/gis/install/
---
# Installation de GeoDjango

## Aperçu

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

1. [Python et Django](#django)
2. [Base de données spatiale](#spatial-database)
3. [Installation des bibliothèques géospatiales](/fr/2.0/ref/contrib/gis/install/geolibs/)

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](#macos)
- [Windows](/fr/2.0/ref/contrib/gis/testing/#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](/fr/2.0/topics/install/#installing-official-release) de Django pour des détails sur l’installation.

### Base de données spatiale

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.

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

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.3+ | Exige PostGIS. |
| MySQL | GEOS, GDAL | 5.5+ | Non conforme avec OGC ; [fonctionnalités limitées](/fr/2.0/ref/contrib/gis/db-api/#mysql-spatial-limitations). |
| Oracle | GEOS, GDAL | 12.1+ | XE non pris en charge. |
| SQLite | GEOS, GDAL, PROJ.4, SpatiaLite | 3.6.+ | Nécessite SpatiaLite 4.0+ |

Voir aussi cette [matrice comparative](https://trac.osgeo.org/postgis/wiki/UsersWikiPostgreSQLPostGIS) sur le Wiki OSGeo pour des combinaisons possibles entre PostgreSQL/PostGIS/GEOS/GDAL.

## Installation

### Bibliothèques géospatiales

- [Installation des bibliothèques géospatiales](/fr/2.0/ref/contrib/gis/install/geolibs/)

### Installation de la base de données

- [Installation de PostGIS](/fr/2.0/ref/contrib/gis/install/postgis/)
- [Installation de SpatiaLite](/fr/2.0/ref/contrib/gis/install/spatialite/)

### [`DATABASES`](/fr/2.0/ref/settings/#std-setting-DATABASES) configuration

Set the [`ENGINE`](/fr/2.0/ref/settings/#std-setting-DATABASE-ENGINE) setting to one of the [spatial
backends](/fr/2.0/ref/contrib/gis/db-api/#spatial-backends).

### Ajout de `django.contrib.gis` à [`INSTALLED_APPS`](/fr/2.0/ref/settings/#std-setting-INSTALLED_APPS)

Comme pour d’autres applications contribuées dans Django, il *suffit* d’ajouter [`django.contrib.gis`](/fr/2.0/ref/contrib/gis/#module-django.contrib.gis) à [`INSTALLED_APPS`](/fr/2.0/ref/settings/#std-setting-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 :

- Rejoindre le canal IRC `#geodjango` sur Freenode. Soyez patient et poli ; même si vous n’obtenez pas de réponse immédiate, quelqu’un essaiera de répondre à votre question au moment où il la lira.
- Poser votre question sur la liste de diffusion [GeoDjango](https://groups.google.com/d/forum/geodjango) (en anglais).
- Créer un ticket dans le [trac de Django](https://code.djangoproject.com/newticket) 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è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`

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 :

```console
export LD_LIBRARY_PATH=/usr/local/lib
```

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

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 :

```console
$ 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 :

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

#### Installation de `binutils`

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 :

```console
$ sudo apt-get install binutils
```

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

```console
$ 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](#postgresapp) (le plus simple et la solution recommandée)
- [Homebrew](/fr/2.0/ref/contrib/gis/install/spatialite/#homebrew)
- [KyngChaos](/fr/2.0/ref/contrib/gis/install/spatialite/#kyngchaos)
- [Fink](#fink)
- [MacPorts](#macports)
- [Compilation à partir des sources](/fr/2.0/ref/contrib/gis/install/geolibs/#build-from-source)

Cette section inclut aussi des instructions pour installer une version mise à jour de [Python](#macos-python) à partir de paquets fournis par la fondation Python Software, mais ce n’est pas une obligation.

#### Python

Même si Python est préinstallé sur macOS, il est possible de le réinstaller avec des [paquets fournis](https://www.python.org/ftp/python/) 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.

> **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 :
>
> ```console
> export PATH=/Library/Frameworks/Python.framework/Versions/Current/bin:$PATH
> ```

#### Postgres.app

[Postgres.app](https://postgresapp.com/) is a standalone PostgreSQL server
that includes the PostGIS extension. You will also need to install `gdal` and
`libgeoip` with [Homebrew](/fr/2.0/ref/contrib/gis/install/spatialite/#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é :

```bash
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](https://brew.sh/) 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](https://developer.apple.com/xcode/) est indispensable.

En résumé :

```console
$ brew install postgresql
$ brew install postgis
$ brew install gdal
$ brew install libgeoip
```

#### Paquets KyngChaos

William Kyngesburye fournit un certain nombre de [paquets binaires de bibliothèques géospatiales](https://www.kyngchaos.com/software/frameworks) qui facilitent l’installation de GeoDjango sur macOS sans devoir les compiler à partir des sources. Cependant, [Xcode](https://developer.apple.com/xcode/) est toujours nécessaire afin de pouvoir compiler les adaptateurs de base de données Python [psycopg2](#psycopg2-kyngchaos) (pour PostGIS).

> **Note**
>
> Les utilisateurs de SpatiaLite devraient consulter la section [Instructions spécifiques à macOS](/fr/2.0/ref/contrib/gis/install/spatialite/#spatialite-macos) après l’installation des paquets pour des instructions supplémentaires.

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](https://www.kyngchaos.com/software/postgres).

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 :

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

##### psycopg2

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 :

```console
$ pip install psycopg2
```

> **Note**
>
> Si vous ne disposez pas de `pip`, suivez les [instructions d’installation](/fr/2.0/topics/install/#installing-official-release) pour l’installer.

##### Fink

[Kurt Schwehr](https://schwehr.blogspot.com/) a eu la bonté de créer des paquets GeoDjango pour les utilisateurs du système de paquets [Fink](http://www.finkproject.org/). [Différents paquets sont disponibles](http://pdb.finkproject.org/pdb/browse.php?summary=django-gis) (commençant par `django-gis`), en fonction de la version de Python que vous souhaitez utiliser.

#### MacPorts

[MacPorts](https://www.macports.org/) 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](https://developer.apple.com/xcode/) est indispensable.

En résumé :

```console
$ 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
```

> **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 :
>
> ```console
> export PATH=/opt/local/bin:/opt/local/lib/postgresql93/bin
> ```
>
> De plus, ajoutez le réglage `DYLD_FALLBACK_LIBRARY_PATH` afin que les bibliothèques puissent être trouvées par Python :
>
> ```console
> export DYLD_FALLBACK_LIBRARY_PATH=/opt/local/lib:/opt/local/lib/postgresql93
> ```

### Windows

Suivez scrupuleusement l’ordre des sections suivantes afin d’installer GeoDjango sur Windows.

#### Python

[Installation de Python](/fr/2.0/howto/windows/).

#### PostgreSQL

Tout d’abord, téléchargez la dernière version de l”[installeur PostgreSQL 9.x](https://www.enterprisedb.com/downloads/postgres-postgresql-downloads) à partir du site Web [EnterpriseDB](https://www.enterprisedb.com). 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.

> **Note**
>
> L’installeur PostgreSQL crée à la fois un nouvel utilisateur Windows pour le « compte de service postgres » et un superutilisateur de base de données nommé `postgres`. On vous demande une seule fois de définir le mot de passe pour les deux comptes, prenez garde de bien vous en souvenir !

Lorsque l’installeur a terminé, il demande de lancer le programme Application Stack Builder (ASB) en quittant. Laissez cette option cochée, car c’est nécessaire pour installer [PostGIS](#postgisasb).

> **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 9.x sera créé pour contenir des raccourcis pour les programmes ASB et SQL Shell ; ce dernier lance une commande `psql` dans une fenêtre de commandes.

#### PostGIS

À partir du programme Application Stack Builder (à lancer en dehors de l’installeur, Démarrer ‣ Programmes ‣ PostgreSQL 9.x), choisissez PostgreSQL Database Server 9.x on port 5432 dans le menu déroulant. Ensuite, ouvrez l’arborescence de menu Categories ‣ Spatial Extensions et choisissez PostGIS X.Y for PostgreSQL 9.x.

Après avoir cliqué sur suivant, vous devez choisir un miroir, PostGIS sera téléchargé et l’installeur PostGIS va démarrer. Ne choisissez que les options par défaut durant l’installation (par ex. ne décochez pas l’option de créer une base de données PostGIS par défaut).

> **Note**
>
> On vous demande ensuite de saisir le mot du passe du superutilisateur de base de données `postgres` dans la boîte de dialogue « Database Connection Information ».

#### psycopg2

Le module Python `psycopg2` fournit l’interface entre Python et la base de données PostgreSQL. Téléchargez l”[installeur Windows](http://www.stickpeople.com/projects/python/win-psycopg/) le plus récent pour votre version de Python et de PostgreSQL et exécutez-le en utilisant les réglages par défaut [^2].

#### OSGeo4W

L”[installeur OSGeo4W](https://trac.osgeo.org/osgeo4w/) facilite l’installation des bibliothèques PROJ.4, GDAL et GEOS requises par GeoDjango. Commencez par télécharger l” 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 et Apache sont aussi sélectionnés par défaut, mais ne sont pas nécessaires pour GeoDjango et peuvent être désélectionnés sans problème. Après avoir cliqué sur suivant, les paquets sont automatiquement téléchargés et installés ; vous pouvez ensuite quitter l’installeur.

#### Modification de l’environnement Windows

Afin de pouvoir utiliser GeoDjango, il est nécessaire d’ajouter les répertoires Python et 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 :

```bat
set OSGEO4W_ROOT=C:\OSGeo4W
set PYTHON_ROOT=C:\Python3X
set GDAL_DATA=%OSGEO4W_ROOT%\share\gdal
set PROJ_LIB=%OSGEO4W_ROOT%\share\proj
set PATH=%PATH%;%PYTHON_ROOT%;%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, créez un script `bat` avec les commandes, faites un clic droit sur ce script et choisissez Exécuter en tant qu’administrateur. 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 Python ou de OSGeo4W, vous devrez alors aussi modifier de façon cohérente les variables `OSGEO4W_ROOT` et `PYTHON_ROOT`.

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

Enfin, [installez Django](/fr/2.0/topics/install/#installing-official-release) sur votre système.

**Notes de bas de page**

[^1]: GeoDjango utilise la routine [`find_library()`](https://docs.python.org/3/library/ctypes.html#ctypes.util.find_library) de `ctypes.util` pour trouver les bibliothèques partagées.

[^2]: Les installeurs Windows pour `psycopg2` sont empaquetés et maintenus par [Jason Erickson](http://www.stickpeople.com/projects/python/win-psycopg/).
