前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >解决Django:SQLite 3.8.3 or later is required

解决Django:SQLite 3.8.3 or later is required

作者头像
kirin
发布2020-06-08 08:24:34
3.5K1
发布2020-06-08 08:24:34
举报
文章被收录于专栏:Kirin博客

在我的CentOS系统上安装了django==2.2.8并创建了一个webApps项目,使用:

代码语言:javascript
复制
$ django-admin startproject webApps

但是,当我使用以下命令初始化迁移所需模型时,发生了错误:

代码语言:javascript
复制
$ python3 manage.py migrate

以上命令产生了如下的错误输出:

django.core.exceptions.ImproperlyConfigured: SQLite 3.8.3 or later is required (found 3.7.17).

django发现Python使用的sqlite版本过低,不满足要求。因此,我尝试升级自带的sqlite。使用sqlite3 –version查看了CentOS的Sqlite为3.7,我开始用yum remove sqlite移除了当前版本,并且编译安装高版本,参考比如:

代码语言:javascript
复制
$ wget https://www.sqlite.org/2019/sqlite-autoconf-3270200.tar.gz
$ tar -zxvf sqlite-autoconf-3270200.tar.gz
$ cd sqlite-autoconf-3270200
$ ./configure --prefix=/usr/local
$ make && make install

此时完成了sqlite 3.27.2的安装,但是系统默认认识3.7。因此链接新的路径:

代码语言:javascript
复制
$ mv /usr/bin/sqlite3  /usr/bin/sqlite3_7
$ ln -s /usr/local/bin/sqlite3   /usr/bin/sqlite3

设置共享库路径:export LD_LIBRARY_PATH=”/usr/local/lib”:LD_LIBRARY_PATH并执行生效source ~/.bashrc

这个时候,使用sqlite3 –version时便会输出版本为3.27.2。可是当我再次执行python3 manage.py migrate时仍会报错,原来python使用的sqlite还是3.7:

代码语言:javascript
复制
>>>import sqlite3                                                     
>>>sqlite3.sqlite_version
'3.7.17'

这个时候我就二丈摸不着头脑了,google了一下,解决方式包括未正确设定sqlite、尝试升级python版本、重新编译python等,重新编译太麻烦了吧,于是我发现了一个可以有效解决当前django必须使用sqlite3.8.3以上版本的问题。感谢,可以这样尝试:

locate django将会输出大量包含django关键字的目录文件,可以看到django安装在哪些路径下,在我的系统上,需要找到/…/lib/python3.6/site-packages/django/db/backends/sqlite3/base.py这个脚本,django判断当前使用的sqlite版本的代码就在这里,找到以下代码块,注释掉那一行代码并更改:

代码语言:javascript
复制
def check_sqlite_version():
    # if Database.sqlite_version_info < (3, 8, 3):
    if Database.sqlite_version_info < (3, 6, 3):
        raise ImproperlyConfigured('SQLite 3.8.3 or later is required(found %s).' % Database.sqlite_version)


check_sqlite_version()

再次尝试django-admin startproject webApps便会执行成功。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020/06/07 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
数据库
云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档