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

hc8w905p  于 2022-11-24  发布在  SQLite
关注(0)|答案(3)|浏览(166)

使用Django和SQLite我想运行最新的SQLite版本;最新的SQLite二进制文件,而不是SQLite Python库。我有一个SQLite二进制文件,它不是系统默认的,无法更改默认版本。
我没有使用Django的ORM,而是用一个独立的SQLAlchemy版本.Related替换了它(但必须运行最新的Python SQLite库)。

xeufq47z

xeufq47z1#

如果您只需要python提供的最新版本的SQLite,最简单的方法是安装pysqlite3包:

pip install pysqlite3-binary

这是SQLite静态链接的最新版本,你可以在一个venv中使用它而不影响其他包。
您可以像这样使用它:

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

如果您碰巧使用peewee,它会自动拾取它。
如果您需要特定版本的SQLite,可以构建这个包,如Aaron Digulla的答案中所建议的。

0mkxixxg

0mkxixxg2#

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中。这种方法的缺点是它很脆弱,很难被其他人重复。

bsxbgnwa

bsxbgnwa3#

如果您使用Windows,请先尝试以下简单方法:从sqlite download page中获取dll(它将位于“Precompiled Binaries for Windows”标题下),并将其添加到Anaconda的dll路径中(如C:\Users\YourUserName\Anaconda3\DLLs)。
如果您使用的是Linux,请参阅Install Python and Sqlite from SourceCompiling SQLite for use with Python Applications

相关问题