【问题标题】:Using spatialite with 64 bit python's sqlite3 module on 64 bit Windows 7在 64 位 Windows 7 上使用带 64 位 python 的 sqlite3 模块的 spatialite
【发布时间】:2015-11-09 22:56:13
【问题描述】:

我已经安装了spatialite DLL 文件from this page。我交替尝试将 32 位 DLL (mod_spatialite-4.2.0-win-x86.7z) 放入 Windows 的 system32 文件夹,将 64 位文件 (mod_spatialite-4.3.0a-win-amd64.7z) 放入 SysWOW64文件夹。然后我在 python 中执行以下操作:

import sqlite3
conn = sqlite3.connect(":memory:")
conn.enable_load_extension(True)
conn.execute('SELECT load_extension("[name of spatialite dll file]")')

这会产生错误消息:

sqlite3.OperationalError: %1 is not a valid Win32 application.

关于如何让 spatialite 在 64 位 Win7 和 64 位 python 上专门工作有什么建议吗?

【问题讨论】:

    标签: python sqlite spatialite


    【解决方案1】:

    修复它。如果其他人遇到同样的问题,我会发布解决方案:

    第 1 步。获取 Spatialite DLL:

    下载 64 位版本(即 mod_spatialite-4.3.0a-win-amd64.7z)here。解压压缩包,将文件放到 Windows 的 System32 文件夹中。

    步骤 2. 更新 spatialite3 python 模块的 DLL 文件:

    如果安装了 sqlite3 模块,在您的 C:\Python[X.X]\DLL 文件夹中,有一个名为“sqlite3.dll”的文件 - 此默认 sqlite dll 可能无法与新的 spatialite DLL 一起使用。将默认 DLL 替换为来自 this site 的更新的 64 位 sqlite3.dll。

    【讨论】:

      猜你喜欢
      • 2012-04-19
      • 1970-01-01
      • 2015-02-28
      相关资源
      最近更新 更多