# Django 6.0.7 documentation

# 安装 SpatiaLite

SpatiaLite 为 SQLite 增加了空间支持，使其成为一个全功能的空间数据库。

首先，检查是否可以从系统包或二进制文件中安装 SpatiaLite。

例如，在打包了 SpatiaLite 4.3+ 的基于 Debian 的发行版上，尝试安装 `libsqlite3-mod-spatialite` 软件包。对于较旧的发行版，请安装 `spatialite-bin`。

对于 macOS，请按照 下方的说明。

对于 Windows，你可以在 Gaia-SINS 主页上找到二进制文件。

在任何情况下，你都应该能够 从源码安装。

## 从源码安装

在构建 SpatiaLite 之前，应先安装 GEOS 和 PROJ。

### SQLite

首先检查 SQLite 是否已编译使用 R*Tree 模块。运行 sqlite3 命令行界面，并输入以下查询：

    sqlite> CREATE VIRTUAL TABLE testrtree USING rtree(id,minX,maxX,minY,maxY);

如果你获得一个错误，你将不得不从源码重新编译 SQLite。否则，请跳过本节。

要从源代码安装，从 SQLite 下载页面 下载最新的合并源代码存档，并解压缩：

    $ wget https://www.sqlite.org/YYYY/sqlite-amalgamation-XXX0000.zip
    $ unzip sqlite-amalgamation-XXX0000.zip
    $ cd sqlite-amalgamation-XXX0000

接下来，运行 `configure` 脚本 -- 但是需要自定义 `CFLAGS` 环境变量，以便 SQLite 知道要构建 R*Tree 模块：

    $ CFLAGS="-DSQLITE_ENABLE_RTREE=1" ./configure
    $ make
    $ sudo make install
    $ cd ..

### SpatiaLite 库（`libspatialite`）

从 下载页面 获取最新的 SpatiaLite 库源代码包：

    $ wget https://www.gaia-gis.it/gaia-sins/libspatialite-sources/libspatialite-X.Y.Z.tar.gz
    $ tar xaf libspatialite-X.Y.Z.tar.gz
    $ cd libspatialite-X.Y.Z
    $ ./configure
    $ make
    $ sudo make install

Note

对于从源代码构建的 macOS 用户，需要配置 SpatiaLite 库和工具的 `target`：

    $ ./configure --target=macosx

## macOS 特定说明

要安装 SpatiaLite 库和工具，macOS 用户可以使用 Homebrew。

### Homebrew

Homebrew 会代表您处理所有与 SpatiaLite 相关的软件包，包括 SQLite、SpatiaLite、PROJ 和 GEOS。可以像这样安装它们：

    $ brew update
    $ brew install spatialite-tools
    $ brew install gdal

最后，为了让 GeoDjango 能够找到 SpatiaLite 库，请将“SPATIALITE_LIBRARY_PATH”设置设置为其路径。 这将位于您的brew安装路径中，您可以使用以下命令进行检查：

    $ brew --prefix
    /opt/homebrew

使用这个brew安装路径，完整的路径可以像这样被构造

    SPATIALITE_LIBRARY_PATH = "/opt/homebrew/lib/mod_spatialite.dylib"