安装地理空间库

GeoDjango 使用和/或为以下开源地理空间库提供接口

程序

描述

必需

支持的版本

GEOS

几何引擎开源

3.12, 3.11, 3.10, 3.9, 3.8

PROJ

制图投影库

是 (仅限 PostgreSQL 和 SQLite)

9.x, 8.x, 7.x, 6.x

GDAL

地理空间数据抽象库

3.8, 3.7, 3.6, 3.5, 3.4, 3.3, 3.2, 3.1, 3.0

GeoIP

基于 IP 的地理位置库

2

PostGIS

PostgreSQL 的空间扩展

是 (仅限 PostgreSQL)

3.4, 3.3, 3.2, 3.1, 3.0

SpatiaLite

SQLite 的空间扩展

是 (仅限 SQLite)

5.1, 5.0, 4.3

请注意,这些库的较旧或较新版本可能也能与 GeoDjango 完美配合使用。您的使用情况可能会有所不同。

注意

GeoDjango 与 GEOS、GDAL 和 GeoIP 的接口可以独立于 Django 使用。换句话说,不需要数据库或设置文件 - 从 django.contrib.gis 中正常导入它们。

在 Debian/Ubuntu 上,建议安装以下软件包,这些软件包将直接或通过依赖项安装所需的地理空间库

$ sudo apt-get install binutils libproj-dev gdal-bin

如果您使用的是 macOSWindows,请同时查阅特定于平台的说明。

从源代码构建

在 UNIX 和 GNU/Linux 系统上从源代码安装时,请仔细按照安装说明进行操作,并按给定的顺序安装库。如果使用 MySQL 或 Oracle 作为空间数据库,则仅需 GEOS。

注意

在 Linux 平台上,可能需要在安装每个库后运行 ldconfig 命令。例如

$ sudo make install
$ sudo ldconfig

注意

macOS 用户必须安装 Xcode 才能从源代码编译软件。

GEOS

GEOS 是一个用于执行几何运算的 C++ 库,是 GeoDjango 使用的默认内部几何表示(它位于“惰性”几何体之后)。具体来说,C API 库(例如 libgeos_c.so)是使用 ctypes 从 Python 中直接调用的。

首先,从 GEOS 网站下载 GEOS 并解压缩源代码归档文件

$ wget https://download.osgeo.org/geos/geos-X.Y.Z.tar.bz2
$ tar xjf geos-X.Y.Z.tar.bz2

然后进入 GEOS 目录,创建一个 build 文件夹,然后进入该文件夹

$ cd geos-X.Y.Z
$ mkdir build
$ cd build

然后构建并安装软件包

$ cmake -DCMAKE_BUILD_TYPE=Release ..
$ cmake --build .
$ sudo cmake --build . --target install

故障排除

找不到 GEOS 库

当 GeoDjango 找不到 GEOS 时,会引发此错误

ImportError: Could not find the GEOS library (tried "geos_c"). Try setting GEOS_LIBRARY_PATH in your settings.

最常见的解决方法是正确配置您的 库环境设置在设置中设置 GEOS_LIBRARY_PATH

如果使用 GEOS 的二进制软件包(例如在 Ubuntu 上),您可能需要 安装 binutils

GEOS_LIBRARY_PATH

如果您的 GEOS 库位于非标准位置,或者您不想修改系统的库路径,则可以将 GEOS_LIBRARY_PATH 设置添加到您的 Django 设置文件中,其中包含 GEOS C 库的完整路径。例如

GEOS_LIBRARY_PATH = '/home/bob/local/lib/libgeos_c.so'

注意

该设置必须是 C 共享库的完整路径;换句话说,您希望使用 libgeos_c.so,而不是 libgeos.so

另请参阅 我的日志中充满了与 GEOS 相关的错误

PROJ

PROJ 是一个用于将地理空间数据转换为不同坐标参考系统的库。

首先,下载 PROJ 源代码

$ wget https://download.osgeo.org/proj/proj-X.Y.Z.tar.gz

… 和基准面转换文件(为 PROJ < 7.x 下载 proj-datumgrid-X.Y.tar.gz[1]

$ wget https://download.osgeo.org/proj/proj-data-X.Y.tar.gz

接下来,解压缩源代码归档文件,并将基准面转换文件提取到 data 子目录中。这必须在配置之前完成

$ tar xzf proj-X.Y.Z.tar.gz
$ cd proj-X.Y.Z/data
$ tar xzf ../../proj-data-X.Y.tar.gz
$ cd ../..

对于 PROJ 9.x 及更高版本,发行版仅支持使用 CMake 进行构建(请参阅 PROJ RFC-7)。

要使用 CMake 构建,请确保您的系统满足 构建要求。然后在 PROJ 目录中创建一个 build 文件夹,然后进入该文件夹

$ cd proj-X.Y.Z
$ mkdir build
$ cd build

最后,配置、生成并安装 PROJ

$ cmake ..
$ cmake --build .
$ sudo cmake --build . --target install

GDAL

GDAL 是一个优秀的开源地理空间库,支持读取大多数矢量和栅格空间数据格式。目前,GeoDjango 仅支持 GDAL 的矢量数据 功能 [2]。在构建 GDAL 之前,应安装 GEOSPROJ

首先下载最新的 GDAL 发行版并解压缩归档文件

$ wget https://download.osgeo.org/gdal/X.Y.Z/gdal-X.Y.Z.tar.gz
$ tar xzf gdal-X.Y.Z.tar.gz

对于 GDAL 3.6.x 及更高版本,发行版仅支持使用 CMake 进行构建。要使用 CMake 构建,请在 GDAL 目录中创建一个 build 文件夹,然后进入该文件夹

$ cd gdal-X.Y.Z
$ mkdir build
$ cd build

最后,配置、生成并安装 GDAL

$ cmake ..
$ cmake --build .
$ sudo cmake --build . --target install

如果您遇到任何问题,请参阅下面的故障排除部分以获取建议和解决方案。

故障排除

找不到 GDAL 库

当 GeoDjango 找不到 GDAL 库时,请配置您的 库环境设置在设置中设置 GDAL_LIBRARY_PATH

GDAL_LIBRARY_PATH

如果您的 GDAL 库位于非标准位置,或者您不想修改系统的库路径,则可以将 GDAL_LIBRARY_PATH 设置添加到您的 Django 设置文件中,其中包含 GDAL 库的完整路径。例如

GDAL_LIBRARY_PATH = '/home/sue/local/lib/libgdal.so'

脚注

返回顶部