{"title":"安装 SpatiaLite","version":"6.1","locale":"zh-hans","docname":"ref/contrib/gis/install/spatialite","url":"/zh-hans/6.1/ref/contrib/gis/install/spatialite/","canonical":"https://djangodocs.dev/zh-hans/6.1/ref/contrib/gis/install/spatialite/","summary":"SpatiaLite 为 SQLite 增加了空间支持，使其成为一个全功能的空间数据库。 首先，检查是否可以从系统包或二进制文件中安装 SpatiaLite。 例如，在打包了 SpatiaLite 4.3+ 的基于 Debian 的发行版上，尝试安装 libsqlite3-mod-spatialite…","html":"<h1>安装 SpatiaLite<a class=\"heading-anchor\" href=\"#installing-spatialite\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h1>\n<p><a class=\"reference external\" href=\"https://www.gaia-gis.it/fossil/libspatialite/index\">SpatiaLite</a> 为 SQLite 增加了空间支持，使其成为一个全功能的空间数据库。</p>\n<p>首先，检查是否可以从系统包或二进制文件中安装 SpatiaLite。</p>\n<p>例如，在打包了 SpatiaLite 4.3+ 的基于 Debian 的发行版上，尝试安装 <code class=\"docutils literal notranslate\"><span class=\"pre\">libsqlite3-mod-spatialite</span></code> 软件包。对于较旧的发行版，请安装 <code class=\"docutils literal notranslate\"><span class=\"pre\">spatialite-bin</span></code>。</p>\n<p>对于 macOS，请按照 <a class=\"reference internal\" href=\"#spatialite-macos\"><span class=\"std std-ref\">下方的说明</span></a>。</p>\n<p>对于 Windows，你可以在 <a class=\"reference external\" href=\"https://www.gaia-gis.it/gaia-sins/\">Gaia-SINS</a> 主页上找到二进制文件。</p>\n<p>在任何情况下，你都应该能够 <a class=\"reference internal\" href=\"#spatialite-source\"><span class=\"std std-ref\">从源码安装</span></a>。</p>\n<section id=\"installing-from-source\">\n<span id=\"spatialite-source\"></span><h2>从源码安装<a class=\"heading-anchor\" href=\"#installing-from-source\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<p>在构建 SpatiaLite 之前，应先安装 <a class=\"reference internal\" href=\"/zh-hans/6.1/ref/contrib/gis/install/geolibs/\"><span class=\"doc\">GEOS 和 PROJ</span></a>。</p>\n<section id=\"sqlite\">\n<h3>SQLite<a class=\"heading-anchor\" href=\"#sqlite\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>首先检查 SQLite 是否已编译使用 <a class=\"reference external\" href=\"https://www.sqlite.org/rtree.html\">R*Tree 模块</a>。运行 sqlite3 命令行界面，并输入以下查询：</p>\n<div class=\"code-block\" data-language=\"sqlite3\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Sqlite3</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Sqlite3 code\"><code><span class=\"gp\">sqlite&gt;</span><span class=\"w\"> </span><span class=\"k\">CREATE</span><span class=\"w\"> </span><span class=\"n\">VIRTUAL</span><span class=\"w\"> </span><span class=\"k\">TABLE</span><span class=\"w\"> </span><span class=\"n\">testrtree</span><span class=\"w\"> </span><span class=\"k\">USING</span><span class=\"w\"> </span><span class=\"n\">rtree</span><span class=\"p\">(</span><span class=\"n\">id</span><span class=\"p\">,</span><span class=\"n\">minX</span><span class=\"p\">,</span><span class=\"n\">maxX</span><span class=\"p\">,</span><span class=\"n\">minY</span><span class=\"p\">,</span><span class=\"n\">maxY</span><span class=\"p\">);</span>\n</code></pre></div>\n<p>如果你获得一个错误，你将不得不从源码重新编译 SQLite。否则，请跳过本节。</p>\n<p>要从源代码安装，从 <a class=\"reference external\" href=\"https://www.sqlite.org/download.html\">SQLite 下载页面</a> 下载最新的合并源代码存档，并解压缩：</p>\n<div class=\"code-block\" data-language=\"shell\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Shell</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Shell code\"><code>$<span class=\"w\"> </span>wget<span class=\"w\"> </span>https://www.sqlite.org/YYYY/sqlite-amalgamation-XXX0000.zip\n$<span class=\"w\"> </span>unzip<span class=\"w\"> </span>sqlite-amalgamation-XXX0000.zip\n$<span class=\"w\"> </span><span class=\"nb\">cd</span><span class=\"w\"> </span>sqlite-amalgamation-XXX0000\n</code></pre></div>\n<p>接下来，运行 <code class=\"docutils literal notranslate\"><span class=\"pre\">configure</span></code> 脚本 -- 但是需要自定义 <code class=\"docutils literal notranslate\"><span class=\"pre\">CFLAGS</span></code> 环境变量，以便 SQLite 知道要构建 R*Tree 模块：</p>\n<div class=\"code-block\" data-language=\"shell\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Shell</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Shell code\"><code>$<span class=\"w\"> </span><span class=\"nv\">CFLAGS</span><span class=\"o\">=</span><span class=\"s2\">&quot;-DSQLITE_ENABLE_RTREE=1&quot;</span><span class=\"w\"> </span>./configure\n$<span class=\"w\"> </span>make\n$<span class=\"w\"> </span>sudo<span class=\"w\"> </span>make<span class=\"w\"> </span>install\n$<span class=\"w\"> </span><span class=\"nb\">cd</span><span class=\"w\"> </span>..\n</code></pre></div>\n</section>\n<section id=\"spatialite-library-libspatialite\">\n<span id=\"spatialitebuild\"></span><h3>SpatiaLite 库（<code class=\"docutils literal notranslate\"><span class=\"pre\">libspatialite</span></code>）<a class=\"heading-anchor\" href=\"#spatialite-library-libspatialite\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>从 <a class=\"reference external\" href=\"https://www.gaia-gis.it/gaia-sins/libspatialite-sources/\">下载页面</a> 获取最新的 SpatiaLite 库源代码包：</p>\n<div class=\"code-block\" data-language=\"shell\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Shell</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Shell code\"><code>$<span class=\"w\"> </span>wget<span class=\"w\"> </span>https://www.gaia-gis.it/gaia-sins/libspatialite-sources/libspatialite-X.Y.Z.tar.gz\n$<span class=\"w\"> </span>tar<span class=\"w\"> </span>xaf<span class=\"w\"> </span>libspatialite-X.Y.Z.tar.gz\n$<span class=\"w\"> </span><span class=\"nb\">cd</span><span class=\"w\"> </span>libspatialite-X.Y.Z\n$<span class=\"w\"> </span>./configure\n$<span class=\"w\"> </span>make\n$<span class=\"w\"> </span>sudo<span class=\"w\"> </span>make<span class=\"w\"> </span>install\n</code></pre></div>\n<aside class=\"admonition admonition-note\" role=\"note\">\n<p class=\"admonition-title\">Note</p>\n<p>对于从源代码构建的 macOS 用户，需要配置 SpatiaLite 库和工具的 <code class=\"docutils literal notranslate\"><span class=\"pre\">target</span></code>：</p>\n<div class=\"code-block\" data-language=\"shell\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Shell</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Shell code\"><code>$<span class=\"w\"> </span>./configure<span class=\"w\"> </span>--target<span class=\"o\">=</span>macosx\n</code></pre></div>\n</aside>\n</section>\n</section>\n<section id=\"macos-specific-instructions\">\n<span id=\"spatialite-macos\"></span><h2>macOS 特定说明<a class=\"heading-anchor\" href=\"#macos-specific-instructions\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<p>要安装 SpatiaLite 库和工具，macOS 用户可以使用 <a class=\"reference external\" href=\"https://brew.sh/\">Homebrew</a>。</p>\n<section id=\"homebrew\">\n<h3>Homebrew<a class=\"heading-anchor\" href=\"#homebrew\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<p><a class=\"reference external\" href=\"https://brew.sh/\">Homebrew</a> 会代表您处理所有与 SpatiaLite 相关的软件包，包括 SQLite、SpatiaLite、PROJ 和 GEOS。可以像这样安装它们：</p>\n<div class=\"code-block\" data-language=\"shell\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Shell</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Shell code\"><code>$<span class=\"w\"> </span>brew<span class=\"w\"> </span>update\n$<span class=\"w\"> </span>brew<span class=\"w\"> </span>install<span class=\"w\"> </span>spatialite-tools\n$<span class=\"w\"> </span>brew<span class=\"w\"> </span>install<span class=\"w\"> </span>gdal\n</code></pre></div>\n<p>最后，为了让 GeoDjango 能够找到 SpatiaLite 库，请将“SPATIALITE_LIBRARY_PATH”设置设置为其路径。 这将位于您的brew安装路径中，您可以使用以下命令进行检查：</p>\n<div class=\"code-block\" data-language=\"console\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Shell</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Shell code\"><code><span class=\"gp\">$ </span>brew<span class=\"w\"> </span>--prefix\n<span class=\"go\">/opt/homebrew</span>\n</code></pre></div>\n<p>使用这个brew安装路径，完整的路径可以像这样被构造</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"n\">SPATIALITE_LIBRARY_PATH</span> <span class=\"o\">=</span> <span class=\"s2\">&quot;/opt/homebrew/lib/mod_spatialite.dylib&quot;</span>\n</code></pre></div>\n</section>\n</section>","rootId":"installing-spatialite","toc":[{"title":"从源码安装","anchor":"installing-from-source","children":[{"title":"SQLite","anchor":"sqlite","children":[]},{"title":"SpatiaLite 库（libspatialite）","anchor":"spatialite-library-libspatialite","children":[]}]},{"title":"macOS 特定说明","anchor":"macos-specific-instructions","children":[{"title":"Homebrew","anchor":"homebrew","children":[]}]}],"breadcrumbs":[{"docname":"ref/index","title":"API 参考","url":"/zh-hans/6.1/ref/"},{"docname":"ref/contrib/index","title":"contrib 包","url":"/zh-hans/6.1/ref/contrib/"},{"docname":"ref/contrib/gis/index","title":"GeoDjango","url":"/zh-hans/6.1/ref/contrib/gis/"},{"docname":"ref/contrib/gis/install/index","title":"GeoDjango 安装","url":"/zh-hans/6.1/ref/contrib/gis/install/"}],"prev":{"docname":"ref/contrib/gis/install/postgis","title":"安装 PostGIS","url":"/zh-hans/6.1/ref/contrib/gis/install/postgis/"},"next":{"docname":"ref/contrib/gis/model-api","title":"GeoDjango 模型 API","url":"/zh-hans/6.1/ref/contrib/gis/model-api/"},"formats":{"html":"/zh-hans/6.1/ref/contrib/gis/install/spatialite/","markdown":"/zh-hans/6.1/ref/contrib/gis/install/spatialite.md","json":"/zh-hans/6.1/ref/contrib/gis/install/spatialite.json"},"source":"https://github.com/django/django/blob/stable/6.1.x/docs/ref/contrib/gis/install/spatialite.txt","official":"https://docs.djangoproject.com/zh-hans/6.1/ref/contrib/gis/install/spatialite/","inVersions":["6.1","6.0","5.2","5.1","5.0","4.2","4.1","4.0","3.2","3.1","3.0","2.2","2.1","2.0"],"inLocales":["en","sv","zh-hans","ga","fr","ja","id","it","pt-br","ko","es","el","pl"]}