GeoDjango Installation

Installation of GeoDjango also requires the installation of existing open source geographic libraries and a spatial database -- currently only PostGIS. This section will describe the installation process for these prerequisites. GeoDjango is best supported on Linux/UNIX platforms, but also works on Windows (with a little more effort). The following platforms have been confirmed to work -- feel free to add to the list:

Linux

Debian Woody (2.4 Kernel)

Debian etch (2.6 Kernel)

Ubuntu 7.0 (2.6 Kernel)

Solaris 5.11

Windows XP SP2

Linux & UNIX Platforms

Python & PostgreSQL

Python

Required: Python 2.4 is required because of heavy use of 2.4 decorator syntax (e.g.@property). The ctypes module needs to be installed as well.

Recommended: Python 2.5 is recommended because the ctypes module comes included. ​Python 2.5.1 is the current latest.

PostgreSQL

Recommended: PostgreSQL 8.x. If installing binary packages, please install the development package as well for headers required in PostGIS compilation.

We are currently developing using both v8.1 and v8.2 of PostgreSQL.

On Ubuntu Feisty and Debian etch, install postgresql-8.x and postgresql-server-dev-8.x (the development package is required for PostGIS compilation).

On Debian etch install the libpq-dev package, which includes the pg_config executable (also required for PostGIS compilation).

psycopg2

​psycopg2 is a Python database adapter for PostgreSQL. Latest version is ​2.0.6.

GeoDjango has its own GEOS ctypes wrapper; you do not need to enable the existing GEOS Python bindings.

ctypes comes standard with Python 2.5. If you run Python 2.4, ctypes may be ​downloaded here, but in Debian etch you may install the python-ctypes package.

Configure, make, and install (g++ is required for compilation)

$ ./configure
$ make
# make install

PROJ.4

Latest ​PROJ.4 version is 4.5.0. We have no reason to believe that previous versions (e.g., 4.4.x, 4.3.x) will not work.

First, download the PROJ ​datum shifting files. These will come in handy for coordinate transformations when other programs (like Mapserver or Mapnik) are not able to cope with EPSG transformations (I learned the hard way). Untar/unzip these in the nad subdirectory of the PROJ source. For example, if PROJ was unzipped in a directory named proj, then untar these files in proj/nad. Do this before you do the configure/make/install dance.

Note: the flex package maybe required for PostGIS compilation on Debian distributions and may be installed with the command: apt-get install flex

Next, create a role and database for your application, and allow it to access PostGIS functionality. PostGIS SQL files are installed in the PostgreSQL share directory (/usr/postgres/8.2/share in the example below; use the pg_config --sharedir command to determine this directory on your system).

Note: if you experience errors about not finding libraries, you may need to adjust your LD_LIBRARY_PATH (which may be configured system-wide by editing /etc/ld.so.conf and running ldconfig). On Solaris platforms use the crle utility to configure the runtime linking environment.

Finally, update your settings.py to reflect the name and user for the spatially enabled database. So far, we only plan to support the psycopg2 backend, thus: DATABASE_ENGINE='postgresql_psycopg2'.

GDAL

Highly Recommended: Some features (e.g., a large number of SpatialRefSys model routines) require GDAL, but it is not necessary for core functionality like spatial queries.

Windows

Note: The installation for the GEOS and GDAL libaries is 'hackish' right now. A sustainable long-term solution (i.e. an installer) needs to be developed for these libraries.

Introduction

These instructions will cover using binary packages to install GeoDjango on Windows 2000/XP platforms. Compiling prerequisite packages (e.g., GEOS) from source on Windows is beyond the scope of this documentation, as it assumes the use of community-built binary installers.

That said, here are some additional program recommendations that, while not required, make your Python experience in Windows less painful:

The Windows command-line terminal is It's difficult to re-size and copy and paste from. I (jbronn) find ​Console2 more convenient to use than one supplied with Windows (cmd.exe).

Python

Download and run the ​Python installer. We highly recommend you use Python 2.5 or greater (2.5.1 is the latest, and the version linked to). Python 2.5 includes the ctypes library, which is required for the GEOS, GDAL, and readline (if you're using IPython) interfaces. Python 2.4 users may obtain ctypes from the ​sourceforge download page.

In order to be able to invoke python from the command-line, setup your Windows Path environment variable to include the Python installation directory:

Right-click on "My Computer" icon (either on the Desktop or through the Start Menu).

Select the "Advanced" tab.

Click the "Environment Variables"

Under "System Variables" select Path and click the "Edit" button.

Append ";C:\Python25" to the value therein.

PostgreSQL

Download and run the PostgreSQL installer from ​here. Do not install the PostGIS version bundled with this installer. The latest version of PostgreSQL is 8.2.5.

If you want to invoke PostgreSQL commands from the shell, append ";C:\Program Files\PostgreSQL\8.2\bin" to the Windows Path.

PostGIS

PostGIS maintains a ​distribution for Windows, and includes pre-built libraries for PROJ 4.5.0 and GEOS 3.0.0rc4 (both are the latest versions). You may download the latest ​PostGIS (1.3.1) here. Run this after the PostgreSQL installer.

If you added the directory to PostgreSQL to your Path (see above), the following command may be used to easily create spatial databases:

C:\> createdb -T template_postgis <database name>

psycopg2

Windows binary packages of the psycopg2 module are packaged by Jason Erickson, and may be downloaded from his ​win-psycopg website. The latest version maintained for Python 2.5 and PostgreSQL 8.2.4 is ​pyscopg2 2.0.6.

GEOS

After PostGIS has installed, copy the GEOS (libgeos-3-0-0rc4.dll, libgeos_c-1.dll), and PROJ (libproj.dll) libraries from C:\Program Files\PostgreSQL\8.2\bin (or wherever you installed PostgreSQL) to a location accessible to the Python interpreter (e.g., C:\Python25\DLLs, or C:\Python25).

GDAL/OGR

The premiere GDAL/OGR binary package for Windows is ​FWTools, however, the libraries I downloaded (1.4.1 at the time) were missing functions needed for the library interface -- I need to investigate again to provide additional details. This is the reason why QGIS is used to obtain compiled GDAL libraries for Windows.

A snapshot (0.9.0 Preview-2) windows installer of ​Quantum GIS (QGIS) can be obtained from ​here. Once installed, copy all the DLLs from C:\Program Files\Quantum GIS to C:\Python25: Do not overwrite any dlls that come from PostGIS.

Third-Party Library Installation Tests

You can run these tests in order to see if the installation was successful.