在 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