gpt4 book ai didi

python - 在 Debian 上升级 Python 的 sqlite3

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

我在我的 Debian 上的 linux2 上使用 Python 2.7.6(默认,2014 年 3 月 22 日,22:59:56)[GCC 4.8.2],我通常使用模块 sqlite3 没有任何问题。

compiled a Sqlite extension spellfix,加载时出现此错误:

sqlite3.OperationalError: ./spellfix.so: undefined symbol: sqlite3_malloc64

我觉得可能是因为sqlite3模块太旧了:

import sqlite3
print sqlite3.version # 2.6.0
print sqlite3.sqlite_version # 3.8.2

(在 sqlite3.sqlite_version 为 3.8.7.x 的另一台机器上,扩展加载正常)。

我试过:

pip install --upgrade pysqlite

但还是一样:sqlite3.sqlite_version 仍然是 3.8.2。

如何升级标准库内置的Python sqlite3模块?

最佳答案

您认为 sqlite3 的版本导致问题是正确的。 sqlite_malloc64 是用 release 3.8.7 引入的.

与其尝试升级可能最终破坏您的 Python 安装的 Python sqlite3 模块,我建议编译 3.8 版中包含的 spellfix.c 版本。 2.

您可以在这里找到来源:https://www.sqlite.org/src/tarball/27392118/SQLite-27392118.tar.gz

从那里您可以构建合并:

sh configure
make sqlite3.c

您将在 tsrc 文件夹中拥有 sqlite3.hsqlite3ext.h。然后编译 spellfix.c 扩展:

gcc -g -fPIC -shared spellfix.c -I ../../tsrc -o spellfix.dll

你应该得到一个与你的 sqlite3 版本一起运行的兼容 spellfix.dll

关于python - 在 Debian 上升级 Python 的 sqlite3,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49820873/

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