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 ...
随机推荐
- 面试之CAS
1.CAS(Compare And Swap)比较并替换,是线程并发运行时用到的一种技术或者算法,CAS与之对应的是一些锁技术,,例如synconozied,同事这种比较替换的思想也可以运用到数据库上 ...
- Worksheet使用方法
1 下载印象笔记: iPhone/iPad在App Store搜索"印象笔记"后下载 安卓在应用市场或在印象笔记官网yinxiang.com下载,图标同上 电脑可至印象笔记官网y ...
- 【C++复习】第七章 类的继承(基类、派生类、虚基类)
1.基类与派生类 类的继承:面向对象的程序设计中提供了类的继承机制,允许程序员在保持原有类特性的基础上,进行更具体.更详细的定义 用途:代码的重用性(继承)和可扩充性(派生) 例:植物大战僵尸游戏中, ...
- Vue的hash/history模式
hash路由模式 URL 中的 hash 值只是客户端的一种状态,向服务端发送请求的时候,hash 部分不会被发送: hash 值得改变会在浏览器的历史记增加访问记录,所以可以通过浏览器的回退.前进控 ...
- 1.EditPlus
EditPlus软件使用 1.新建 XML 文件 2.编辑器设置 在文件保存时选择编码格式
- XJTUOJ #1193. 表象[弹幕偏执症]
题目 https://oj.xjtuicpc.com/problem/1193 恋恋天下第一!(然而本菜鸡总是被阿空锤死而根本开不了normal)TAT 思路 挺吓人的一道题,看起来很像是要匹配加字符 ...
- CF79D 题解
题解 传送门 你有 \(n\) 个灯泡,一开始都未点亮. 同时你有 \(l\) 个长度,分别为 \(a_1 \sim a_l\). 每次你可以选择一段连续的子序列,且长度为某个 \(a_i\),并将这 ...
- [AGC043B] 123 Triangle
个人思路: 首先,经过 \(1\) 轮就没有 \(3\) 了. 先考虑能否递推前 \(i\) 个数的答案,发现不行. 再考虑能否推出 \(i\) 个数的答案的计算公式,也发现不行. 然后就不会了. 正 ...
- redhat7
systemctl systemctl enable sshd 开机启动某服务 systemctl disable sshd 开机不启动某服务 systemctl is-enabled sshd查看某 ...
- 2022-04-15内部群每日三题-清辉PMP
1.由于关键路径上一个任务估计错误,项目落后于进度,项目经理应该怎么做? A.向客户解释这个问题,并告知他们预计将延期多长时间. B.要求团队成员向客户解释为什么会错误估计该任务. C.分析快速跟进或 ...

