在centos进行Django项目部署时,出现的sqlite版本问题小记

在创建django应用或使用python manage.py runserver时如果报以下错误:django.core.exceptions.ImproperlyConfigured: SQLite 3.8.3 or later is required。个人的版本情况为:1.python:3.9.10  ;  2.django3.2  

这样的问题的解决方法有:

  • 方法一:通过降低Django版本去解决,结果实践证明不行。
  • 方法二:升级sqlite.

下载地址:

 

 

https://www.sqlite.org/download.html:
1.更新版本:
cd /usr/local/src
wget http://www.sqlite.org/2021/sqlite-autoconf-3360000.tar.gz
tar -zxvf sqlite-autoconf-3360000.tar.gz
cd sqlite-autoconf-3360000
./configure --prefix=/usr/local/sqlite
make && make install

2.替换旧的版本:

mv /usr/bin/sqlite3 /usr/bin/sqlite3_bak
cd /usr/local/sqlite/bin/
ln -s sqlite3 /usr/bin/sqlite3

3.根据sql安装路径填写,并让配置生效:

[root@test ~] vim /etc/profile
#添加内容
export LD_LIBRARY_PATH="/usr/local/sqlite/lib"
[root@test ~]source /etc/profile

4.查看版本:发现已经更新成功:

>>> import sqlite3
>>> sqlite3.sqlite_version
'3.36.0'

本以为OK了,结果还是不行。

python3 manage.py runserver
#....省略
django.db.utils.NotSupportedError: deterministic=True requires SQLite 3.8.3

到底如何去解决呢?试了试第三种方法。

  • 方法三:使用 pysqlite3 和 pysqlite3-binary 库来操作。

首先下载下pysqlite3和pysqlite3-binary库

pip3 install pysqlite3
pip3 install pysqlite3-binary

然后更改下,....../sqlite3/base.py,每个人安装路径不一样,自己找。 

[root@test ~]vim /opt/python3910/lib/python3.9/site-packages/django/db/backends/sqlite3/base.py
#修改内容
#from sqlite3 import dbapi2 as Database (注释掉这段)
from pysqlite3 import dbapi2 as Database #改成pysqlite3

这样就OK了。

python3 manage.py runserver 0:8080 #(用0代替0.0.0.0)

好了,到此问题已解决!!!

 

 

 

posted on 2022-09-17 16:20  一先生94  阅读(555)  评论(0编辑  收藏  举报

导航