在 CentOS for Python 上升级 Sqlite3 版本的问题

Posted

技术标签:

【中文标题】在 CentOS for Python 上升级 Sqlite3 版本的问题【英文标题】:Problem upgrading Sqlite3 version on CentOS for Python 【发布时间】:2021-01-10 11:31:27 【问题描述】:

我的系统上有CentOS 6,我正在尝试为Python 更新SQLite。我已经从源代码安装它并按预期执行sqlite --version 返回版本3.33.0

但是,当我尝试使用 import sqlite3; sqlite3.sqlite_version; 检查 python SQLite 版本时,我仍然得到以前的 SQLite 版本 3.6.20

Software Locations:
     Python 3.6.9 - /usr/bin/python3
     Sqlite3 - /usr/bin/sqlite3

我尝试了解决方案here,这根本不起作用,在更新LD_LIBRARY_PATH 并检查python SQLite 版本后,它仍然给出'3.6.20'和here,当我尝试@987654334 时@,它给了我错误No such file or directory,但是当我在没有sudo LD_RUN_PATH=的情况下执行它时,它成功编译但仍然给我SQLite'3.6.20'(编译python而不卸载)。

注意:我有多个 python3 版本。

我能做些什么来解决这个问题?

【问题讨论】:

你能去/usr/bin/python3运行sqlite3 --version吗? 【参考方案1】:

当我这样做时(特别是试图找到一种方法来更新正在运行的 python 程序的 sqlite3;没有工作......),我编译了 sqlite 并得到了 libsqlite3.so.0.8.6,然后更换了系统-宽的sqlite3。对我来说,在 debian 上,它位于 /usr/lib/x86_64-linux-gnu 中。我确实看到(尽管现在我找不到在哪里)这种方式可能在将来更新时会导致问题。它确实为我更新了 python 的 sqlite3。

【讨论】:

【参考方案2】:

您可以导入特定版本:

__requires__= 'sqlite3==3.6.20'
import pkg_resources
pkg_resources.require("sqlite3==3.6.20")
import sqlite

请注意,这只适用于第一次导入。如果 sqlite 在 pkg_resources 之前被导入,它将采用最新版本。

【讨论】:

以上是关于在 CentOS for Python 上升级 Sqlite3 版本的问题的主要内容,如果未能解决你的问题,请参考以下文章

python3在CentOS7上升级SQLite,并让Python3使用新版SQLite

[linux]centos7.4上升级python2版本到python3.6.5 安装双版本,默认python3

在centos6.5上升级php-libxml版本到2.9.0

如何在CentOS 6.5上升级PHP版本

在 CentOS 7 上升级 docker

Docker 在 centos 7上升级