CentOS7上的python3更新sqlite3版本

问题

报错:

sqlite3.DatabaseError: malformed database schema(is_transient) - near "where": syntax error

原因:
sqlite3版本太低,下面命令查看python用的sqlite3版本

import sqlite3
sqlite3.sqlite_version

显示sqlite3的版本是3.7

处理

  1. 更新sqlite3
  2. 重新安装python
    (我这里,如果只安装新版本的sqlite3,python的sqlite3还是旧的。所以我这里重装了python)

步骤

更新sqlite3
  1. 下载sqlite-autoconf版本的,https://www.sqlite.org/download.html
  2. 安装sqlite
tar -xzvf sqlite-autoconf-3380500.tar.gz
cd sqlite-autoconf-3380500
./configure
make install
重新安装python
  1. 下载python3,https://www.python.org/ftp/python/
  2. 重装python3,要加LD_RUN_PATH,因为新装的sqlite3库文件在/usr/local/lib,不加LD_RUN_PATH找不到新的库,会导致重装python3后任然用的旧版sqlit3
tar -xzvf Python-3.9.7.tgz
cd Python-3.9.7
LD_RUN_PATH=/usr/local/lib ./configure --prefix=/usr/local/python3 --with-openssl=/usr/lib/openssl
LD_RUN_PATH=/usr/local/lib make && LD_RUN_PATH=/usr/local/lib make install
  1. 替换掉旧的python3
mv /usr/bin/python3 /usr/bin/python3_old
mv /usr/bin/pip3 /usr/bin/pip3_old
ln -s /usr/local/python3/bin/python3.9 /usr/bin/python3
ln -s /usr/local/python3/bin/pip3.9 /usr/bin/pip3

测试更新成功

import sqlite3
sqlite3.sqlite_version

sqlite3更新到了3.38.5,更新成功

image.png
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容