我正在努力为 GeoDjango 安装 Spatialite!
我已经在使用 Homebrew,它通常简单方便,所以我最初尝试按照GeoDjango的Homebrew 说明进行操作。
但这没有安装任何数据库,即 Spatialite。下一步是尝试安装 Spatialite 本身,但 Django 文档没有提供特定于 Homebrew 的说明。
我发现这个教程看起来很完美——一个 Homebrew 和 virtualenv-friendly 安装的 Spatialite for GeoDjango。
但它不起作用......似乎我pysqlite
的链接是与 OS X 附带的非空间启用版本的 SQLite 相关联,而不是我从 Homebrew 安装的空间化版本,当 Django 尝试时出现此错误连接到数据库:
“pysqlite 库不支持 C 扩展加载。SQLite 和 pysqlite 都必须配置为允许加载扩展才能使用 SpatiaLite。”
pysqlite 的作者没有回应我在 Github 上的求助请求,我也没有通过谷歌找到任何东西。
所以我回到绘图板并决定遵循 GeoDjango 文档中的“Mac OS X 特定说明” ......通过安装来自 KyngChaos 二进制包的各种地理库。
文档说“按照上面列出的顺序安装软件包”,但我发现如果不先安装就无法UnixImageIO
安装PROJ
。文档中下载 Spatialite 二进制文件的链接 ( http://www.gaia-gis.it/spatialite-2.3.1/binaries.html ) 已损坏,因此我使用了 KyngChaos 的“Spatialite Tools v4.1”。
继续下一步,我收到此错误:
$ spatialite geodjango.db "SELECT InitSpatialMetaData();"
SQLite header and source version mismatch
2013-10-17 12:57:35 c78be6d786c19073b3a6730dfe3fb1be54f5657a
2013-09-03 17:11:13 7dd4968f235d6e1ca9547cda9cf3bd570e1609ef
目前还不确定出了什么问题。
SO上还有其他人已经走了KyngChaos路线,最终得到了我从Homebrew路线得到的相同的“SQLite和pysqlite都必须配置为允许加载扩展”错误。
我发现这张票 #17756用于添加pyspatialite
对 Django 的支持 -pyspatialite
应该是一种更简单的方法,pip install
但不幸的是它也不起作用(请参阅票底部的评论)。
我有点不愿意开始尝试手动从源代码构建所有内容,因为我可能会再次遇到同样的问题,但要花几个小时在谷歌上搜索有关神秘编译器错误、魔术标志和路径等的信息.
我准备放弃,只使用 Postgres/PostGIS。