Использование пространственного объекта с модулем sqlite3 для 64-битного Python в 64-битной Windows 7
Я установил пространственные файлы DLL с этой страницы. Я поочередно пытался поместить 32-битные библиотеки DLL (mod_spatialite-4.2.0-win-x86.7z) в папку system32 Windows, а 64-битные файлы (mod_spatialite-4.3.0a-win-amd64.7z) - в SysWOW64. папка. Затем я делаю следующее в Python:
import sqlite3
conn = sqlite3.connect(":memory:")
conn.enable_load_extension(True)
conn.execute('SELECT load_extension("[name of spatialite dll file]")')
Это приводит к сообщению об ошибке:
sqlite3.OperationalError: %1 is not a valid Win32 application.
Любые предложения о том, как заставить пространственный объект работать конкретно на 64-битной Win7, с 64-битным питоном?
1 ответ
Починил это. В случае, если кто-то еще имеет такую же проблему, я опубликую решение:
Шаг 1. Получите DLL-файлы Spatialite:
Загрузите 64-битные версии (то есть mod_spatialite-4.3.0a-win-amd64.7z) здесь. Разархивируйте архив и поместите файлы в папку Windows System32.
Шаг 2. Обновите файл DLL модуля Python для Spaceite3:
Если модуль sqlite3 установлен, в папке C:\Python[XX]\DLL есть файл с именем "sqlite3.dll" - эта библиотека DLL по умолчанию может не работать с новой DLL-библиотекой пространства. Замените библиотеку DLL по умолчанию обновленной 64-разрядной программой sqlite3.dll с этого сайта.