Я пытаюсь использовать spatialite
как с Python 2, так и с 3 в Windows 7.
Вместо того, чтобы пытаться исправить pyspatialite
для Python 3, я решил использовать подход load_extension
со встроенным пакетом sqlite3
Python, подобно тому, как это делается здесь: Sqlite load_extension не работает для Spatialite в Python и здесь: Используйте расширение Spacialite для SQLite в 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
Моим текущим решением было пересборка Python 2.7 и 3.4 с необходимыми настройками для пакета sqlite3
. Это сработало, и я смог загрузить spatialite
в качестве расширения и создать R*Tree.
Существует ли альтернативное более простое решение? Кто-нибудь нашел альтернативное решение, работая над setup.py
из pyspatialite
или pysqlite
?