在64位Windows 7上使用带有64位python的sqlite3模块的spatialite

时间:2015-11-09 22:56:13

标签: python sqlite spatialite

我已安装了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.

有关如何使64位Win7专门用于64位python的任何建议吗?

1 个答案:

答案 0 :(得分:0)

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

步骤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一起使用。用this site中更新的64位sqlite3.dll替换默认DLL。