simonw / sqlite-utils

Python CLI utility and library for manipulating SQLite databases
https://sqlite-utils.datasette.io
Apache License 2.0
1.64k stars 111 forks source link

Windows: Correct way to initialize spatialite? #613

Open AL89 opened 8 months ago

AL89 commented 8 months ago

Hi there.

I am struggling to find a way to install, or to make the library type out a string, when I type db.find_spatialite() according to the documentation. Instead it prints out None, which means that SpatiaLite is not found.

My code is this:

from sqlite_utils import Database
from sqlite_utils.utils import find_spatialite

modelDb = Database('..\\modeludtraek.sqlite')
modelDb.init_spatialite(find_spatialite())

This gives me: TypeError: load_extension() argument must be str, not None.

Obviously, I have not installed the SpatiaLite extension... and I have no clue how to do that. The documentation links to this page. Thus, I don't know what to download and where to place the files. I believe I should look for a file called mod_spatialite.dylib, written in the docs. Instead, I have a file called mod_spatialite.dll, but when I try to locate this file, it throws a OperationalError: Det angivne modul blev ikke fundet (danish for: "The specified module was not found"):

modelDb.init_spatialite('C:\\...\\mod_spatialite-5.1.0-win-x86\\mod_spatialite.dll')

Furthermore, I tried to follow this guide on how to install SpatiaLite on Windows, but that doesn't seem to be working either.

So... what I am doing wrong? Cannot figure it out. Thanks in advance for your help :)