Django: sqlite的版本问题小记 “SQLite 3.8.3 or later”
问题概述
在Django中,默认的数据库时SQLite3。
可能会出现sqlite版本问题的报错,具体如下
起初我直接在django的project下面开了个cmd窗口,
python python manage.py runserver打开服务,就出现了如上报错。
因为有以前的东西在,所以不想降级找麻烦,参照runoob上的Windows 上安装 SQLite 的方法装了最新的SQLite,但是依然不行。
先查一下
貌似这是个老问题,其实网上一搜有好多相关内容,基本上的方法有:
- django降级
- sqlite升级
- 改掉django包里sqlite3中判断版本的函数
前两种方法都是在linux下操作的,我linux上面的程序是没碰到这个报错的。
报错发生在PC上,系统是win10,anaconda环境,(最近梯子出问题了,百度了半天并没有找到相关解答)。
emmm…… 这不是个大问题,能绕过不管,不影响干活,不过自己探索了一下,发现了anaconda的shell和cmd的一点点区别,水平有限终究不知道原因,所以记录一下~
打不过就先绕路
用 anaconda的shell,其实就没问题了,django使用的sqlite3就是conda里的。

虽然没解决,至少可以干活~
还是想研究一下——cmd和conda shell运行的对比
来看下对比图,

看图说话,清楚看出两边用的python和sqlite都是一样的,但是读取sqlite3版本号结果就是不一样。
django判断sqlite的版本源码就是红框的Database.sqlite_version_info:
from sqlite3 import dbapi2 as Database
def check_sqlite_version():
if Database.sqlite_version_info < (3, 8, 3):
raise ImproperlyConfigured('SQLite 3.8.3 or later is required (found %s).' % Database.sqlite_version)
check_sqlite_version()
所以才有django.core.exceptions.ImproperlyConfigured: SQLite 3.8.3 or later is required (found 3.8.2).的报错
最后
水平有限还是不是很懂为什么cmd没调用正确的sqlite…… anaconda已经在环境变量了呀……
最近工作比较多,没太多时间去查资料了,只能先放放了,或者碰到大佬来解答一下~~~
Django: sqlite的版本问题小记 “SQLite 3.8.3 or later”的更多相关文章
- SQLite 的版本问题
原文:SQLite 的版本问题 在SQLite官方网站上的下载包真可以看花眼.不同的.net版本,还有不同的平台,开发和发布时需要加以注意. 在网上搜了搜,早有人注意到了. 关于在.Net开发中使用S ...
- 图解IntelliJ IDEA 13版本对Android SQLite数据库的支持
IntelliJ IDEA 13版本的重要构建之一是支持Android程序开发.当然对Android SQLite数据库的支持也就成为了Android开发者对IntelliJ IDEA 13版本的绝对 ...
- 关于在.Net开发中使用Sqlite的版本选择问题
原文:关于在.Net开发中使用Sqlite的版本选择问题 如果一个.NET应用要自适应32位/64位系统,只需要在项目的“目标平台”设置为“Any CPU”.但是如果应用中使用了SQLite,情况就不 ...
- 【转】关于在.Net开发中使用Sqlite的版本选择问题
如果一个.NET应用要自适应32位/64位系统,只需要在项目的“目标平台”设置为“Any CPU”.但是如果应用中使用了SQLite,情况就不同了. SQLite的.NET开发包来自是System.D ...
- SQLite Expert Professional 打开加密SQLite数据库
原文 SQLite Expert Professional 打开加密数据库 (已修改) 版本:sqlite expert professional 4.2.0.739 (x86) 目的:用SQLite ...
- paip.sqlite 管理最好的工具 SQLite Expert 最佳实践总结
paip.sqlite 管理最好的工具 SQLite Expert 最佳实践总结 一般的管理工具斗可以...就是要是sqlite没正常地关闭哈,有shm跟wal文件..例如ff的place.sqlit ...
- 在C#中利用Nuget包使用SQLite数据库和Linq to SQLite
本来是学习在VB中使用SQLite数据库和Linq to SQLite,结果先学习到了在C#中使用SQLite数据库和Linq to SQLite的方法,写出来与大家共同学习.(不知道算不算不务正业) ...
- 在VB中利用Nuget包使用SQLite数据库和Linq to SQLite
上午解决了在C#中利用Nuget包使用SQLite数据库和Linq to SQLite,但是最后生成的是C#的cs类文件,对于我这熟悉VB而对C#白痴的来说怎么能行呢? 于是下午接着研究,既然生成的是 ...
- Django 2.1版本与Django 1.8.3的一些区别(转)
Django 2.1版本与Django 1.8.3的一些区别 我在刚开始学习的时候使用的Django版本是1.8.3的,后来在安装其它软件的时候,可能需要2.1的版本,自动帮我更新了Djang ...
- 使用System.Data.SQLite及其EF模块操作SQLite数据库(文件)
SQLite for .NET (System.Data.SQLite) introduction An ADO.NET provider for SQLite including EF and Li ...
随机推荐
- 百题计划-5 codeforces 651 div2 D. Odd-Even Subsequence 二分检查
https://codeforces.com/contest/1370/problem/D 二分检查 #include<bits/stdc++.h> using namespace std ...
- 如何搭建Redis集群(主从+哨兵)
一.什么是redis主从复制? 主从复制,是指将一台Redis服务器的数据,复制到其他的Redis服务器.前者称为主节点(master),后者称为从节点(slave),数据的复制是单向的,只能由主节点 ...
- PMP项目启动会与开工会议
转载https://www.cnblogs.com/yanpeng1991/p/11391805.html 项目启动会(project initiating meeting)与项目开工会(kick-o ...
- awk引用外部变量
test]# cat tmp.tmp120.4987 12.717858119.801948 13.38588119.424529 14.024871119.337438 15.070484119.2 ...
- sshpass免密登录源码剖析
源码下载地址:https://sourceforge.net/projects/sshpass/ 免密登陆程序sshpass源码解析,短小精悍的程序,非常值得学习!
- 【Python】容器:列表(list)/字典(dict)/元组(tuple)/集合(set)
三.Python容器:列表(list)/字典(dict)/元组(tuple)/集合(set) 1.列表(list) 1.1 什么是列表 是一个'大容器',可以存储N多个元素简单来说就是其他语言中的数组 ...
- 说说Selenium的几个痛处
Selenium挺好用,但也有几个不爽的地方: 1. 元素无法点击,因为scroll to element这一招时常不管用 2. 调试慢,一进入调试模式,PyCharm突然变慢, evaluate如同 ...
- 想通过anconda来创建一个虚拟环境,结果发现一直报错。An unexpected error has occurred. Conda has prepared the above report.
本来想要通过conda create -n drf-admin python==3.8 来创建一个虚拟环境,结果一直报错. An unexpected error has occurred. Cond ...
- gin面试题
1.gin绑定前端提交的数据到结构体 json,shouldbindjson,postform,query拿到get方法或者路由拼接这些 2.gin框架中间件多个执行顺序 3.中间件实现原理 4.设计 ...
- 手机端 replaceAll没有执行吗
let item = _styleArr[i].replace(' ','').split(':'): 不知道为什么,好像replaceAll没有执行,后来改成replace好了.

