• 部署Django报错-requires SQLite 3.8.3 or higher


    记一次CentOS7部署Django项目时的报错

    问题出现

    部署测试环境时,有需要用到一个python的后端服务,要部署到测试环境中去

    心想这不是so easy吗,把本地调试时使用的python版本及Django版本在服务器上对应下载好,然后直接执行命令

    python manage.py runserver 0.0.0.0:8000
    
    • 1

    不就完事儿了吗,说干就干,立马去服务器布置好python和django的环境,到py项目的根目录下执行上面一行的命令

    结果直接报错:

    django.db.utils.NotSupportedError: deterministic=True requires SQLite 3.8.3 or higher

    在这里插入图片描述

    属实一脸懵圈,又赶紧对应了一下服务器上环境和本地环境的依赖版本对应,没问题啊,完全按照本地的环境依赖来的,贴一下python和Django的版本

    python: 3.11
    Django: 4.2.4
    
    • 1
    • 2

    又去官网看了下,难道是python和Django的版本不对应吗?版本对应地址

    在这里插入图片描述

    这没啥问题吧,而且我本地都这个环境,调试的好好的。

    又去项目的依赖库,对应完一看,项目里的依赖也没说用到啥sqlite啊,后来发现,centos7中有自带的sqlite,看了一下版本

    [root@kafka1 ~]# sqlite3 --version
    3.7.17 2013-05-20 00:56:22 118a3b35693b134d56ebd780123b7fd6f1497668
    
    • 1
    • 2

    嚯!Django项目启动执行时会读取这个版本的sqlite3,Django且在执行前还去判断了一下这个版本,行吧

    既然是版本低了,那么我们调一下版本就好了嘛,能解决问题就行

    开始解决

    反手到sqlite的官网去下载最新的sqlite去,https://www.sqlite.org/download.html

    在这里插入图片描述

    直接下了一个3.43的版本的,开始整环境安装吧。

    安装步骤

    下载完成后,上传到服务器,开始安装

    1. 解压
    tar -zxvf sqlite-autoconf-3430000.tar.gz
    
    • 1
    1. cd到sqlite-autoconf-3430000目录下,配置安装文件:
    # 到对应的目录下
    cd sqlite-autoconf-3430000
    
    # 配置
    ./configure --prefix=/usr/local
    
    • 1
    • 2
    • 3
    • 4
    • 5
    1. 编译&安装
    make && make install
    
    • 1
    1. 建立软链接

    旧版的sqlite3更改一下

    mv /usr/bin/sqlite3 /usr/bin/sqlite3_old
    
    • 1

    新版的sqlite3建立软链接

    ln -s /usr/local/bin/sqlite3 /usr/bin/sqlite3
    
    • 1

    安装完毕~~,看一了下版本

    [root@kafka1 sqlite-autoconf-3430000]# sqlite3 --version
    3.43.0 2023-08-24 12:36:59 0f80b798b3f4b81a7bb4233c58294edd0f1156f36b6ecf5ab8e83631d468778c (64-bit)
    
    • 1
    • 2

    欧克了,3.43的版本,但是还没完,因为在后面的部署中发现,这样仍然不可以。

    在这里插入图片描述

    部署python项目时发现还是读取的旧版的sqlite3,所以需要配置到环境变量中

    1. 设置环境变量

    vim /etc/profile将配置写好保存

    export LD_LIBRARY_PATH=/usr/local/lib
    
    • 1

    刷新一下source /etc/profile

    1. 完事儿收工,后面部署Django项目就行了
    python manage.py runserver 0.0.0.0:8000
    
    • 1

    TIPS:测试环境访问别忘了开端口

  • 相关阅读:
    CS5523/CS5518/MIPI接口转接芯片方案/替代IT6151
    UI 学习 二 可访问性 模式
    JAVA面试题多线程&并发篇(二)
    一个Callable接口能有多少知识点?在裁员的大背景下,我仍然吊打了大厂面试官
    js每日十题
    【并发编程】Lock接口
    OceanBase携手天阳科技推出新一代信用卡核心系统联合解决方案,为信用卡业务稳健增长提供创新活力与数据动力
    深度学习基础之《TensorFlow框架(4)—Operation》
    MarkdownPad2, CSDN及有道云笔记对数学公式的支持
    详解自监督发展趋势! 何恺明连获三年CVPR最高引用的秘诀是?
  • 原文地址:https://blog.csdn.net/weixin_45248492/article/details/132627688