GeoDjango utiliza e/ínterfases para las siguientes bibliotecas geoespaciales de código abierto:
Programa |
Descripción |
Requerido |
Supported Versions |
|---|---|---|---|
Motor de geometrías de código abierto |
Sí |
3.13, 3.12, 3.11, 3.10, 3.9, 3.8 |
|
Biblioteca de proyecciones cartográficas |
Sí (solo PostgreSQL y SQLite) |
9.x, 8.x, 7.x, 6.x |
|
Geospatial Data Abstraction Library |
Sí |
3.10, 3.9, 3.8, 3.7, 3.6, 3.5, 3.4, 3.3, 3.2, 3.1 |
|
Biblioteca de geolocalización basada en IP |
No |
2 |
|
Extensiones espaciales para PostgreSQL |
Sí (solo PostgreSQL) |
3.4, 3.3, 3.2, 3.1 |
|
Extensiones espaciales para SQLite |
Sí (solo SQLite) |
5.1, 5.0, 4.3 |
Ten en cuenta que versiones antiguas o más recientes de estas bibliotecas pueden funcionar perfectamente con GeoDjango. Tu experiencia puede variar.
Nota
Las interfaces de GeoDjango a GEOS, GDAL y GeoIP pueden usarse de forma independiente de Django. En otras palabras, no se requiere ninguna base de datos o archivo de configuración – importalas como normal desde django.contrib.gis.
En Debian/Ubuntu, te recomendamos instalar los siguientes paquetes que instalarán directamente o mediante dependencias las bibliotecas geoespaciales requeridas:
$ sudo apt-get install binutils libproj-dev gdal-bin
Por favor también consulta las instrucciones específicas de la plataforma si estás en macOS o Windows.
Al instalar desde fuentes en sistemas UNIX y GNU/Linux, por favor sigue cuidadosamente las instrucciones de instalación y haz que se instalen las bibliotecas en el orden dado. Si estás utilizando MySQL o Oracle como base de datos espacial, solo es necesario GEOS.
Nota
En plataformas Linux puede ser necesario ejecutar el comando ldconfig después de instalar cada biblioteca. Por ejemplo:
$ sudo make install
$ sudo ldconfig
Nota
Los usuarios de macOS deben instalar Xcode para poder compilar software desde fuentes.
GEOS es una biblioteca C++ para realizar operaciones geométricas, y es la representación interna de geometría por defecto utilizada por GeoDjango (está detrás de las «geometrías perezosas»). Específicamente, la biblioteca API C se llama directamente desde Python utilizando ctypes (por ejemplo, libgeos_c.so).
Primero, descarga GEOS desde el sitio web de GEOS y descomprime el archivo de fuentes:
$ wget https://download.osgeo.org/geos/geos-X.Y.Z.tar.bz2
$ tar xjf geos-X.Y.Z.tar.bz2
Luego, accede a la carpeta GEOS, crea una carpeta build, y accede a ella:
$ cd geos-X.Y.Z
$ mkdir build
$ cd build
Luego, construye e instala el paquete:
$ cmake -DCMAKE_BUILD_TYPE=Release ..
$ cmake --build .
$ sudo cmake --build . --target install
Cuando GeoDjango no puede encontrar GEOS, se levanta este error:
ImportError: Could not find the GEOS library (tried "geos_c"). Try setting GEOS_LIBRARY_PATH in your settings.
La solución más común es configurar correctamente tus Configuración del entorno de biblioteca o establecer GEOS_LIBRARY_PATH en tus ajustes.
Si estás utilizando un paquete binario de GEOS (por ejemplo, en Ubuntu), puede que necesites Instala binutils.
GEOS_LIBRARY_PATH¶Si tu biblioteca GEOS está en una ubicación no estándar o no deseas modificar el camino de la biblioteca del sistema, entonces se puede agregar la configuración GEOS_LIBRARY_PATH a tu archivo de configuración Django con el camino completo a la biblioteca C GEOS. Por ejemplo:
GEOS_LIBRARY_PATH = '/home/bob/local/lib/libgeos_c.so'
Nota
La configuración debe ser el path completo a la biblioteca compartida de C; es decir, quieres utilizar libgeos_c.so, no libgeos.so.
También consulta Mis registros están llenos de errores relacionados con GEOS.
PROJ es una biblioteca para convertir datos geoespaciales a diferentes sistemas de referencia de coordenadas.
Primero, descarga el código fuente de PROJ:
$ wget https://download.osgeo.org/proj/proj-X.Y.Z.tar.gz
… y archivos de desplazamiento de datum (descarga proj-datumgrid-X.Y.tar.gz para PROJ < 7.x) [1]:
$ wget https://download.osgeo.org/proj/proj-data-X.Y.tar.gz
A continuación, descomprime el archivo de código fuente y extrae los archivos de desplazamiento de datum en la subcarpeta data. Esto debe hacerse antes de la configuración:
$ tar xzf proj-X.Y.Z.tar.gz
$ cd proj-X.Y.Z/data
$ tar xzf ../../proj-data-X.Y.tar.gz
$ cd ../..
Para PROJ 9.x y versiones posteriores, solo se admiten compilaciones utilizando CMake (consultar PROJ RFC-7).
Para compilar con CMake, asegúrate de que tu sistema cumpla con los requerimientos de compilación. Luego crea una carpeta build en el directorio PROJ y accede a ella:
$ cd proj-X.Y.Z
$ mkdir build
$ cd build
Finalmente, configura, haz y instala PROJ:
$ cmake ..
$ cmake --build .
$ sudo cmake --build . --target install
`GDAL`__ es una excelente biblioteca geoespacial de código abierto que tiene soporte para leer la mayoría de formatos de datos espaciales vectoriales y raster. Actualmente, GeoDjango solo admite las capacidades de datos vectoriales de GDAL [2]. Debes instalar `geosbuild`__ y `proj4`__ antes de construir GDAL.
Primero descarga la versión más reciente de GDAL y descomprime el archivo:
$ wget https://download.osgeo.org/gdal/X.Y.Z/gdal-X.Y.Z.tar.gz
$ tar xzf gdal-X.Y.Z.tar.gz
Para GDAL 3.6.x y versiones posteriores, solo se admiten compilaciones utilizando CMake. Para compilar con CMake, crea un directorio build en el directorio GDAL y accede a él:
$ cd gdal-X.Y.Z
$ mkdir build
$ cd build
Finalmente, configura, compila y instala GDAL:
$ cmake ..
$ cmake --build .
$ sudo cmake --build . --target install
Si tienes algún problema, por favor consulta la sección de solución de problemas a continuación para sugerencias y soluciones.
Cuando GeoDjango no puede encontrar la biblioteca GDAL, configura tus Configuración del entorno de biblioteca o establece GDAL_LIBRARY_PATH en tus configuraciones.
GDAL_LIBRARY_PATH¶Si tu biblioteca GDAL está en una ubicación no estándar o no deseas modificar el camino de las bibliotecas del sistema, entonces la configuración `GDAL_LIBRARY_PATH`__ puede ser agregada a tu archivo de configuración Django con el camino completo a la biblioteca GDAL. Por ejemplo:
GDAL_LIBRARY_PATH = '/home/sue/local/lib/libgdal.so'
Notas al pie
may 31, 2026