【发布时间】:2015-04-20 15:13:36
【问题描述】:
我正在尝试在 Windows 7 上将spatialite 与 Python 2 和 3 一起使用。
我决定使用load_extension 方法和sqlite3 Python 内置包,而不是尝试为Python 3 修补pyspatialite,类似于这里的做法:Sqlite load_extension fail for spatialite in Python 和这里:Use spatialite extension for SQLite on Windows .
但是,在官方 (C)Python 2.7 安装程序中,load_extension 因与 MacOS 相关的问题而被禁用。这不是与 Python 3.4 对应的。此外,这两个安装程序都是在没有 SQLITE_ENABLE_RTREE=1 的情况下构建的(我也想拥有)。
起初,对于 Python 2.7,一种解决方法是构建 pysqlite,调整设置文件以同时具有 R*Tree 和扩展。这种方式不适用于 Python 3,因为当前的 setup.py 似乎不支持它。据我了解,这是因为包移动到了核心 Python 存储库:https://github.com/ghaering/pysqlite/issues/72#issuecomment-94319589
我当前的解决方案是使用 sqlite3 包的所需设置重新构建 Python 2.7 和 3.4。它起作用了,我能够将spatialite 作为扩展加载并创建 R*Tree。
是否存在替代的更简单解决方案?有人通过处理pyspatialite 或pysqlite 的setup.py 或pysqlite 找到了替代解决方案吗?
【问题讨论】:
标签: python-2.7 python-3.x sqlite spatialite