繁体   English   中英

无法更改系统默认 SQLite 二进制

[英]Can't change system default SQLite binary

使用 Django 和 SQLite 我想运行最新的 SQLite 版本; 最近的 SQLite 二进制文件,不是 SQLite Python 库。 我有一个 SQLite 二进制文件,它不是系统默认的,无法更改默认版本。

我没有使用 Django 的 ORM,而是将其替换为独立的 SQLAlchemy 版本。 相关(但与运行最新的 Python SQLite 库有关)。

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

然后您可以使用此导入

from pysqlite2 import dbapi2 as sqlite

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

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

如果您只需要来自 python 的最新版本 SQLite,最简单的选择是现在安装pysqlite3 package:

pip install pysqlite3-binary

这是最新版本的 SQLite 静态链接。 您可以在 venv 中使用它而不会影响任何其他 package。

你可以像这样使用它:

from pysqlite3 import dbapi2 as sqlite3
print(sqlite3.sqlite_version)

如果您碰巧使用peewee ,它会自动将其拾取。

如果您需要 SQLite 的特定版本,您可以按照 Aaron Digulla 的回答中的建议构建此 package。

如果您在 Windows 上,请先尝试这个简单的方法:从sqlite 下载页面获取 dll(它将位于“Windows 预编译二进制文件”标题下)并将其添加到 Anaconda 的 dll 路径(如C:\\Users\\YourUserName\\Anaconda3\\DLLs )。 那里的新版本已经启用了像 FTS5 这样的好东西。

如果您使用的是 Linux,请参阅从源代码安装 Python 和 Sqlite编译 SQLite 以与 Python 应用程序一起使用

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM