Linux sqlite3外部库和python内两个版本,如何更新python内?
问题具体描述
我需要升级python 3使用的sqlite3版本,但是似乎没有明确的答案,而且我不了解是什么决定了python使用的sqlite3版本。我正在安装python 3.6.4的情况下运行CentOS7。CentOS安装了sqlite版本3.7.17,我将其升级到3.23.1,以为python也将使用此never版本的sqlite。
import sqlite3
print(sqlite3.sqlite_version)
下面的代码仍然给我3.17。我已经用谷歌搜索了如何升级版本,但是大多数解决方案似乎都引用了python 2的pysqlite。其他解决方案则讨论了复杂的编译过程,这些过程困扰着我。
我不明白是什么决定了python使用的sqlite版本。是否由python版本,操作系统安装的sqlite版本确定?我也在Windows PC上运行python 3.6.4,它说我正在运行3.14.2,因此sqlite版本似乎不依赖于python版本。
是什么决定python使用的sqlite版本?有没有更直接的方法来升级python 3的sqlite版本?
解决方法如下
sqlite3是一种外部库。因此,您需要设置外部库路径。
尝试下一个命令
printenv LD_LIBRARY_PATH
如果您从未设置过,则结果将为空。
使用已安装的sqlite3 for python的下一个命令将起作用
export LD_LIBRARY_PATH="/usr/local/lib"
然后,您可以执行并获取正确的版本
import sqlite3
print(sqlite3.sqlite_version)
但是当您注销并再次登录时,此方法将被重置。因此,如果您想在每次登录时都注册该环境变量,则应编辑/ etc / profile
sudo vi /etc/profile
并添加导出代码在该文件末尾:
export LD_LIBRARY_PATH="/usr/local/lib"
然后,如果您注销并再次登录,则可以看到LD_LIBRARY_PATH已注册。