gpt4 book ai didi

python - Python 中的 spatialite 的 SQLite load_extension 失败

转载 作者:IT王子 更新时间:2023-10-29 06:21:53 29 4
gpt4 key购买 nike

我正在尝试使用 Spatialite beta 3.0 版,因为我正在使用64 位计算机上的 Windows 7。

我总是得到可怕的 sqlite3.OperationalError: The
找不到指定的模块。
尝试加载时出错libspatialite-4.dll.

我尝试了以下方法:

  • libspatialite-4.dll 和所有其他 dll 放在同一个文件夹中
  • 使用 dll 的完整路径
  • 将dll位置添加到'PATH'环境变量
  • 将 dll 位置附加到 sys.path 属性作为 Python 代码的一部分
  • 复制c:\windows\system32文件夹中的所有dll(重启机器完成)
  • 复制 c:\windows\sysWoW64 文件夹中的所有 dll(重启机器完成,这应该是 32 位 dll,但我还是试过了)

我的代码如下:

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

注意 - 我也尝试了完整的路径,但没有成功。我记得有与 Windows XP 32 位相同的问题。我让它工作但不能记住我做了什么:(

更新

我已经在 32 位 Windows 7 上测试了设置,并且将所有 dll 放在 System32 文件夹中都能正常工作。因此,这表明 64 位设置存在一些问题。会不会是我需要另一个版本的 MSVC(我不认为 Spatialite 网站说哪个是必需的,所以我可能只能猜测 - 我安装了 MSVC2010)?

最佳答案

我遇到了同样的问题,这让我困惑了好几天。我在 Windows 7(x64) 上运行 Python 2.6(32 位),因此它可能与您的设置不同。

以下是您可以尝试的方法(取自 Google Groups post ):

  1. 将 spatialite dll(libgeos_c-1.dll、libgeos-3-0-0.dll、libproj-0.dll 和 libspatialite-2.dll)放入 C:/驱动器上的文件夹中。
  2. 将此文件夹添加到您的 PATH。

问题似乎是由于用户权限设置,Windows 可能无法从 C:\Windows\system32 加载 dll。

关于python - Python 中的 spatialite 的 SQLite load_extension 失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8590599/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com