python - 在 Windows 上为 SQLite 使用 spatialite 扩展

标签 python windows sqlite spatialite

我知道以前有人以类似的方式问过这个问题。但是,我发现的所有问题都涉及一些非常具体的系统设置,这些设置不适用于我(因为我也是)。

系统:

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

如何激活“sqlite3”模块的 spatialite 扩展?

我试过的方法(类似问题中其他人所说的方法):

  • 正在从 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.

我还可以尝试什么来完成这项工作?

最佳答案

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

顺便说一句,您使用的是非常旧的 spatialite 版本:请在此处查看新版本: https://www.gaia-gis.it/fossil/libspatialite/index

关于python - 在 Windows 上为 SQLite 使用 spatialite 扩展,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27907818/

相关文章:

python - 如何在 python 中进行 fork 或非阻塞系统调用

python - 所有类方法中的类变量访问

c++ - MinGW 缺少 Active Movie header ?

c++ - C++ windows 代码中是否有任何方法可以阻止鼠标移出窗口边界

c++ - 使用 TCL 编写嵌入式 SQLite 脚本

python - sqlite3 python 添加列和更新值

android - 连接到android手机时无法读取数据库

python - 如何根据条件从另一个数据帧更新数据帧值

python - 捕获特定异常

windows - 转义变量中的符号 - 赢得批处理