在Windows上对SQLite使用spatialite扩展

Dir*_*irk 5 python windows sqlite spatialite

我知道之前有过类似的问题.但是,我在此发现的所有问题都涉及一些非常具体的系统设置,这些设置不适合我(因为我的也是如此).

系统:

  • Windows 7 64位
  • Python 3.4 64位
  • sqlite3 2.6.0(我猜的是附带Python)
  • Spatialite Windows二进制文件2.3.1(其他重要的东西?)

如何激活' spatialitesqlite3'模块的扩展名?

我尝试了什么(类似问题的其他人说它有效的方式):

  • 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")')
Run Code Online (Sandbox Code Playgroud)

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

我还能尝试做些什么呢?

kla*_*iop 6

您可能没有将 libspatialite-2.dll 放在 PATH 中的文件夹。也许您可以从 Python 脚本中添加文件夹(我不知道任何 Python)。或者您可以从 Windows 属性界面添加它。

顺便说一句,您使用的是非常旧版本的空间:在这里查看更新版本:https : //www.gaia-gis.it/fossil/libspatialite/index

  • 旧版本的空间是问题所在!在搜索 Windows 二进制文件时,Google 将我与 [https://www.gaia-gis.it](https://www.gaia-gis.it) 上旧空间版本的子页面混淆,这就是为什么我认为没有更多最近的。此外,库/二进制文件已从 `spatialite-2(/3/4).dll` 重命名为 `mod_spatialite.dll` 这让我觉得这是不同的东西。从[此下载页面](http://www.gaia-gis.it/gaia-sins/windows-bin-amd64/)下载`mod_spatialite-4.2.0-win-amd64.7z`并将所有DLL放入` c:\Windows\system32` 解决了这个问题。 (2认同)
  • 顺便说一下,[Gaia GIS 上的这个下载页面](http://www.gaia-gis.it/gaia-sins/windows-bin-x86/) 提供了 Windows 32 位二进制文​​件。我试图自己编译 mod_spatialite 几乎浪费了一个工作日(在我终于找到编译好的二进制文件之前,不要在 Windows 上这样做:-()-_- (2认同)