2015-01-12 25 views
5

Wiem, że zostało to zadane w podobny sposób wcześniej. Jednak wszystkie pytania, które znalazłem w tej sprawie, dotyczyły bardzo specyficznych konfiguracji systemu, które nie miały zastosowania dla mnie (ponieważ tak jest moje).Użyj spatialite dla SQLite na Windows

System:

  • Windows 7 64bit
  • Python 3.4 64bit
  • sqlite3 2.6.0 (dostarczany z Pythonem chyba) binariów
  • Spatialite systemu Windows 2.3.1 (nic innego znaczenia ?)

Jak mogę aktywować rozszerzenie spatialite dla sqlite3' moduł?

Co próbowałem (sposób, że inne osoby w podobnej kwestii powiedzieć, że działa):

  • Pobieranie z https://www.gaia-gis.it/spatialite-2.3.1/binaries.html:
    • libspatialite-win-x86-2.3.1.zip
    • proj -win-x86-4.6.1.zip
    • geos-win-x86-3.1.1.zip
    • libiconv-win-x86-1.9.2.zip
  • rozpakować wszystkie z nich w tym samym folderze na dysku C: \
  • (Próbowałem też wprowadzenie tylko DLL do tego folderu)
  • wprowadzanie tego folderu w mojej ścieżce systemowej zmiennej

Następnie uruchomiony

import sqlite3 

conn = sqlite3.connect(":memory:") 
conn.enable_load_extension(True) 
conn.execute('SELECT load_extension("libspatialite-2.dll")') 

daje

conn.execute("SELECT load_extension('libspatialite-2.dll')") 
sqlite3.OperationalError: The specified module could not be found. 

Co jeszcze mogę spróbować zrobić, aby to zadziałało?

Odpowiedz

4

prawdopodobnie nie masz folderu, w którym plik libspatialite-2.dll znajduje się w Twojej zmiennej PATH. Być może możesz dodać folder z poziomu skryptu Python (nie znam żadnego Pythona). Albo możesz dodać go z interfejsu właściwości Windows.

BTW używasz bardzo starej wersji spatialite: rzucić okiem tutaj dla nowszych wersjach: https://www.gaia-gis.it/fossil/libspatialite/index

+2

Stara wersja spatialite był problem! Google pomieszał mi podstrony starych wersji przestrzennych na [https://www.gaia-gis.it] (https://www.gaia-gis.it) podczas wyszukiwania plików binarnych Windows, dlatego pomyślałem, że nie ma więcej ostatnie. Poza tym nazwa biblioteki/plików binarnych została zmieniona z 'spatialite-2 (/ 3/4) .dll' na' mod_spatialite.dll', co sprawiło, że pomyślałem, że to coś innego. Pobieranie 'mod_spatialite-4.2.0-win-amd64.7z' z [tej strony pobierania] (http://www.gaia-gis.it/gaia-sins/windows-bin-amd64/) i umieszczenie wszystkich bibliotek DLL w' c: \ Windows \ system32' rozwiązało problem. – Dirk

+1

Nawiasem mówiąc, [ta strona pobierania na Gaia GIS] (http://www.gaia-gis.it/gaia-sins/windows-bin-x86/) dostarcza pliki binarne Windows 32-bitowe. Straciłem prawie cały dzień roboczy, próbując samodzielnie skompilować mod_spatialite (nie rób tego na Windows :-() zanim w końcu znalazłem skompilowane pliki binarne -_- – Dirk