部署Django报错-requires SQLite 3.8.3 or higher

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

问题出现

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

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

shell 复制代码
python manage.py runserver 0.0.0.0:8000

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

结果直接报错:

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

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

shell 复制代码
python: 3.11
Django: 4.2.4

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

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

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

shell 复制代码
[root@kafka1 ~]# sqlite3 --version
3.7.17 2013-05-20 00:56:22 118a3b35693b134d56ebd780123b7fd6f1497668

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

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

开始解决

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

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

安装步骤

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

  1. 解压
shell 复制代码
tar -zxvf sqlite-autoconf-3430000.tar.gz
  1. cd到sqlite-autoconf-3430000目录下,配置安装文件:
shell 复制代码
# 到对应的目录下
cd sqlite-autoconf-3430000

# 配置
./configure --prefix=/usr/local
  1. 编译&安装
shell 复制代码
make && make install
  1. 建立软链接

旧版的sqlite3更改一下

shell 复制代码
mv /usr/bin/sqlite3 /usr/bin/sqlite3_old

新版的sqlite3建立软链接

shell 复制代码
ln -s /usr/local/bin/sqlite3 /usr/bin/sqlite3

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

shell 复制代码
[root@kafka1 sqlite-autoconf-3430000]# sqlite3 --version
3.43.0 2023-08-24 12:36:59 0f80b798b3f4b81a7bb4233c58294edd0f1156f36b6ecf5ab8e83631d468778c (64-bit)

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

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

  1. 设置环境变量

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

shell 复制代码
export LD_LIBRARY_PATH=/usr/local/lib

刷新一下source /etc/profile

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

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

相关推荐
傲笑风25 分钟前
【openvino】tinybert基于openvino服务化部署(四)
人工智能·python·自然语言处理·nlp·bert·openvino
维基框架1 小时前
WIKI 知识库 v1.1.1 正式发布
人工智能·python
Doraemomo1 小时前
SQLite数据库
数据库·sqlite
Mr数据杨3 小时前
【Codex】用下载中心模块管理系统导出文件与下载任务
django·codex·项目开发
谢白羽5 小时前
SGLang的AWQ量化笔记
笔记·python·sglang
迷迭香yy5 小时前
基金档案数据工程实战从收入分析到持仓穿透的Python解析 IG50免费开源股票数据API接口
开发语言·python
清水白石0085 小时前
Python 类型设计深度解析:TypedDict 能否替代 dataclass?从 JSON 数据边界到 API 设计的最佳实践
java·python·json
️学习的小王6 小时前
Git项目提交忽略文件怎么做?以Python项目为例,详解.gitignore
git·python·elasticsearch
前端 贾公子6 小时前
第09章:上下文与记忆 (6)
开发语言·前端·python
evans在进步6 小时前
Java 常用设计模式入门:建造者、工厂、单例、外观与代理
java·python·设计模式