我正在尝试spatialite
在 Windows 7 上同时使用 Python 2 和 3。
我没有尝试pyspatialite
为 Python 3 打补丁,而是决定使用Python 内置包的load_extension
方法,类似于这里的做法: Sqlite load_extension fail for spatialite in Python和这里:Use spatialite extension for SQLite on Windows。sqlite3
但是,在官方 (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
我当前的解决方案是使用包所需的设置重新构建 Python 2.7 和 3.4 sqlite3
。它起作用了,我能够spatialite
作为扩展加载并创建 R*Tree。
它是否存在替代的更简单的解决方案?setup.py
有人通过研究pyspatialite
or找到了替代解决方案pysqlite
吗?