Python sqlite3: 运行 不同的 sqlite3 版本

Python sqlite3: run different sqlite3 version

我正在 运行使用 sqlite 作为数据库之一创建 Django 项目。我想 运行 在 运行 安装项目时使用最新的 SQLite 版本。我指的是最新的 sqlite 二进制文件,而不是 sqlite python 库。

我有一个不是系统默认的本地 sqlite3 二进制文件,我无法更改默认的 sqlite3 版本。

我没有使用 Django 的 ORM,但已将其替换为独立的 SQLAlchemy 版本。

我找到了一个相关的 link 但那与 运行 最新的 python sqlite 库版本有关。

How to upgrade sqlite3 in python 2.7.3 inside a virtualenv?

Python 不能直接使用 sqlite3 二进制文件。它总是使用一个链接到 sqlite3 共享库的模块。这意味着您必须按照“How to upgrade sqlite3 in python 2.7.3 inside a virtualenv?”中的说明在您的 virtualenv 中创建一个版本的 pysqlite 模块。

然后您可以使用此导入

from pysqlite2 import dbapi2 as sqlite

用新模块覆盖系统的默认 sqlite 模块。

另一种选择是获取 Python 的源代码,编译所有内容并将文件 sqlite.so 复制到您的 virtualenv 中。这种方法的缺点是它很脆弱,很难被其他人重复。

如果你在 windows 上,请先尝试这个简单的方法:从 sqlite download page 中获取 dll(它将在 "Precompiled Binaries for Windows" 标题下)并将其添加到 Anaconda 的 dll 中路径(如 C:\Users\YourUserName\Anaconda3\DLLs)。那里的新版本已经启用了 FTS5 等好东西。

如果您在 Linux,请参阅 Install Python and Sqlite from Source and Compiling SQLite for use with Python Applications