如何更改Python使用的SQLite版本?

问题描述 投票:0回答:3

我在 Debian 9.12 上安装了 Python 3.8 和 SQLite 3.16.2,我需要升级到较新版本的 SQLite。我已经下载并编译了 SQLite 网站上提供的合并,并将其放入

/usr/bin
,所以当我这样做时

$ sqlite3 --version

我得到 3.32.3 响应(这是我编译的版本)。

但是,当我这样做时

$ python3.8
>>> import sqlite3
>>> sqlite3.sqlite_version

我得到的是 3.16.2,这是早期版本。如何更改 Python 选择的 SQLite 版本?

mkrieger1 建议这个问题 可以回答我的问题。它在这里不起作用,因为那里提供的解决方案是针对 Python 2,而不是 Python 3。

pysqlite2
不适用于 Python 3。

python python-3.x sqlite debian
3个回答
7
投票

就我而言,我无法替换为新版本,因为我找不到这些文件。 (我安装了sqlite-autoconf-3350500)

我用另一种方式让它工作只需执行下面的命令

export LD_LIBRARY_PATH="/usr/local/lib"

>>> import sqlite3
>>> sqlite3.sqlite_version
'3.35.5'

2
投票

我解决这个问题的方法是找出您正在导入的旧 sqlite 版本的路径:

import sqlite3
print(sqlite3.__file__)

对我来说,这输出:

C:\Users\YOUR_USERNAME_HERE\AppData\Local\Programs\Python\Python38\lib\sqlite3\__init__.py

进入lib路径:

C:\Users\YOUR_USERNAME_HERE\AppData\Local\Programs\Python\Python38\lib

然后找到sqlite3文件夹并将其删除,然后将其替换为您的最新版本。重试:

>>> import sqlite3
>>> sqlite3.sqlite_version

您应该获得新版本。


0
投票

不要使用

make install
覆盖系统
/usr/bin/sqlite3
,并且将被 yum 更新覆盖,而是使用
/usr/local/bin
,对于大多数人来说,它会比
PATH
更靠上
/usr/bin
(如果不是您的情况,请使用其他目录并在以下步骤中使用它)。此外,这与动态库的
/usr/local/lib64
很好地结合在一起。

# SQLite3 Upgrade steps
## Build
curl https://www.sqlite.org/2024/sqlite-autoconf-3460100.tar.gz | tar xzf -
cd ./sqlite-autoconf-3460100 && ./configure
make

## Install
cp -rfp sqlite3 /usr/local/bin/
cp -rfp .libs/libsqlite3.so* /usr/local/lib64
echo "/usr/local/lib64" | sudo tee /etc/ld.so.conf.d/local-lib64.conf
sudo ldconfig

## Verify
hash -r
sqlite3 -version
# > 3.46.1 2024-08-13 09:16:08 c9c2ab54ba1f5f46360f1b4f35d849cd3f080e6fc2b6c60e91b16c63f69a1e33 (64-bit)
ldconfig -p | grep sqlite
# >    libsqlite3.so.0 (libc6,x86-64) => /usr/local/lib64/libsqlite3.so.0
# >    libsqlite3.so.0 (libc6,x86-64) => /lib64/libsqlite3.so.0
# >    libsqlite3.so (libc6,x86-64) => /usr/local/lib64/libsqlite3.so
# >    libsqlite3.so (libc6,x86-64) => /lib64/libsqlite3.so
python3 -c 'import sqlite3; print(sqlite3.sqlite_version)'
# > 3.46.1
© www.soinside.com 2019 - 2024. All rights reserved.