2015-01-12 70 views
5

我知道這已經以某種類似的方式問過了。但是,我發現的所有問題都涉及到一些非常具體的系統設置,這些系統設置對我不適用(因爲我的系統設置也是如此)。在Windows上使用SQLite的Spatialite擴展

系統:

  • 64位Windows 7
  • 的Python 3.4 64位
  • sqlite3的2.6.0(運與Python我猜)
  • Spatialite Windows可執行文件2.3.1 (什麼都重要?)

如何激活spatialite擴展名爲sqlite3'模塊?

我想什麼(的方式,其他人在類似的問題說,它的工作原理):

  • 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
  • 解壓縮所有的人都到同一個文件夾C:\把
  • (也試過只把DLL文件到該文件夾​​)
  • 該文件夾到我的系統PATH變量

然後,運行

import sqlite3 

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

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

我還可以嘗試做些什麼?

回答

4

您可能沒有將libspatialite-2.dll放置在PATH中的文件夾。 也許你可以從你的Python腳本中添加文件夾(我不知道任何Python)。 或者你可以從Windows屬性界面添加它。

BTW您使用的是很舊版本spatialite的:看看這裏的新版本: https://www.gaia-gis.it/fossil/libspatialite/index

+2

老版spatialite的是問題! Google在搜索Windows二進制文件時在[https://www.gaia-gis.it](https://www.gaia-gis.it)(https://www.gaia-gis.it)上將舊版本的Spatialite版本的子頁面混淆了,這就是爲什麼我認爲沒有更多最近的。此外,庫/二進制文件已經從'spatialite-2(/ 3/4).dll'重命名爲'mod_spatialite.dll',這讓我覺得這是不同的。從[此下載頁面]下載'mod_spatialite-4.2.0-win-amd64.7z'(http://www.gaia-gis.it/gaia-sins/windows-bin-amd64/)並將所有的DLL放入' c:\ Windows \ system32'解決了這個問題。 – Dirk

+1

順便提一句,[Gaia GIS的此下載頁面](http://www.gaia-gis.it/gaia-sins/windows-bin-x86/)提供了Windows 32位二進制文​​件。 我在編譯mod_spatialite時自己編譯了幾乎整個工作日(不要在Windows上執行此操作:-(),然後才終於找到編譯的二進制文件-_- – Dirk