安装地理空间库¶
GeoDjango 使用和/或为以下开源地理空间库提供接口
程序 |
描述 |
必需 |
支持的版本 |
---|---|---|---|
几何引擎开源 |
是 |
3.12, 3.11, 3.10, 3.9, 3.8 |
|
制图投影库 |
是 (仅限 PostgreSQL 和 SQLite) |
9.x, 8.x, 7.x, 6.x |
|
地理空间数据抽象库 |
是 |
3.8, 3.7, 3.6, 3.5, 3.4, 3.3, 3.2, 3.1, 3.0 |
|
基于 IP 的地理位置库 |
否 |
2 |
|
PostgreSQL 的空间扩展 |
是 (仅限 PostgreSQL) |
3.4, 3.3, 3.2, 3.1, 3.0 |
|
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
如果您使用的是 macOS 或 Windows,请同时查阅特定于平台的说明。
从源代码构建¶
在 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 之前,应安装 GEOS 和 PROJ。
首先下载最新的 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'
脚注