在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:
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)
好了,到此问题已解决!!!