我正在费尽心思地尝试安装 Spatialite for GeoDjango!
我已经在使用 Homebrew,它通常很简单且方便,所以我最初尝试遵循自制说明对于 GeoDjango。
但这无法安装任何数据库,即 Spatialite。下一步是尝试安装 Spatialite 本身,但 Django 文档没有提供特定于 Homebrew 的说明。
I found 本教程看起来很完美 - Spatialite for GeoDjango 的 Homebrew 和 virtualenv 友好安装。
但这不起作用...看来我的pysqlite
与 OS X 附带的非空间启用版本的 SQLite 链接,而不是我从 Homebrew 安装的空间化版本,当 Django 尝试连接到数据库时,我收到此错误:
“pysqlite 库不支持 C 扩展加载。SQLite 和 pysqlite 都必须配置为允许加载扩展才能使用 SpatiaLite。”
pysqlite的作者尚未回复我在 Github 上请求帮助我还没有通过谷歌找到任何东西。
所以我回到绘图板并决定遵循“Mac OS X 特定说明”在 GeoDjango 文档中...通过从 KyngChaos 二进制包安装各种 geo 库。
文档说“按照上面列出的顺序安装软件包”,但我发现我无法安装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
目前还不太确定出了什么问题。
还有别人这里就这样谁走了 KyngChaos 路线,最后却得到了同样的结果“SQLite 和 pysqlite 都必须配置为允许加载扩展”无论如何,我从 Homebrew 路线得到了错误。
I found 这张票#17756用于添加pyspatialite
支持 Django -pyspatialite
应该是一种更简单的方法pip install
一切,但不幸的是它也不起作用(请参阅票底部的评论)。
我有点不愿意开始尝试从源代码手动构建所有内容,因为我似乎可能会再次遇到同样的问题,但在此过程中要花几个小时在谷歌上搜索有关神秘编译器错误、魔法标志和路径等的信息。
我准备放弃,只使用 Postgres/PostGIS。