Mehr

Laden von mod_spatialite mit sqlite3 für Python in Windows

Laden von mod_spatialite mit sqlite3 für Python in Windows


Ich verwende seit einiger Zeit erfolgreich die mod_spatialite-Erweiterung für sqlite in Linux, aber ein Kunde möchte, dass eine Anwendung, die auf mod_spatialite basiert, unter Windows funktioniert.

Ich habe die erforderlichen DLLs in einen Ordner extrahiert, den ich der Windows-Variablen PATH hinzugefügt habe. Dadurch kann ich eine eigenständige Version von sqlite3.exe starten und mod_spatialite mit ladenSELECT load_extension('mod_spatialite');. Wenn ich jedoch versuche, diese Erweiterung in Python mit dem sqlite3-Modul zu laden, erhalte ich eine Fehlermeldung:

sqlite3.OperationalError: Die angegebene Prozedur konnte nicht gefunden werden

Unter Linux kann ich einfach verwendenSELECT load_extension('/path/to/mod_spatialite');, aber sqlite3 gibt den gleichen Fehler 'angegebene Prozedur konnte nicht gefunden werden' aus.

Übersehe ich hier etwas?


Das Problem lag an der von Python verwendeten Version von SQLite. Die mit Python 2.7.5 von ArcGIS gelieferte sqlite3.dll konnte die Erweiterung mod_spatialite nicht laden.

Um das Problem zu lösen, habe ich einfach die .dll für die neueste Version von sqlite3 heruntergeladen (hier erhältlich) und dann die sqlite3.dll in C:Python27ArcGIS10.2DLLs durch die neue ersetzt.