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 ...
随机推荐
- pull request 猜想
先从某个地方 fork 一个项目, 我上传一个 git commit, 然后自动显示是否要 pull request, 点 是, 然后就发送到 charger 那里去了.1, git fork,2, ...
- Error: (1061, "Duplicate key name 'makerphoto_user_info_email_380c93a0_uniq'")
django.db.utils.OperationalError: (1061, "Duplicate key name 'makerphoto_user_info_email_380c93 ...
- Posggresql插件Multicorn安装问题总结
根据官网https://multicorn.readthedocs.io/en/latest/installation.html的安装指南下载安装,关键信息: Postgresql 9.1+ Post ...
- centos7 双网卡同网段双网关配置
需求: #1.服务器为双网卡: #2.网卡1为互联网 172.16.137.99/24/254 #3.网卡2为旅游专网 172.16.137.97/24/1 #4.互联网路由器为172.16.137. ...
- libmodbus 源码分析转
记录一下,这位大神分析的很到位,值得膜拜! < libmodbus协议栈1--Linux下详细移植步骤(配置.生成) > < libmodbus协议栈2-- Linux下 modbu ...
- vue - 解决页面跳转到外部链接后,ios回退到本页面,生命周期,路由导航守卫钩子都无法触发的问题
虽然加班,最近心情还是可以的,没多少bug找上门. 乐级生悲,遇到了个奇葩的坑,花了点时间百度才解决...但我离不开的'板砖'是安卓的,对此坑是抗拒的,完全没问题... #此坑描述 ...订单详情某按 ...
- Python生成whl文件
下载源码包,生成whl文件 python setup.py bdist_wheel
- Java方法之方法的定义和调用
方法的定义 Java的方法类似于其他语言的函数,是一段用来完成特定功能的代码片段,一般情况下,定义一个方法包含以下语法: 方法包含一个方法头和一个方法体.下面是一个方法的所有部分: 1.修饰符:修饰符 ...
- JavaScript垃圾回收机制的了解
对于js种的任意长度字符串,对象,数组是没有固定大小的,只有在分配存储时,解释器就会分配内存来存储这些数据.当js的解释器消耗完系统所有可用内存时,就会造成系统崩溃.因此js有着自己的一套垃圾回收机制 ...
- Python Cli 编写指南
Python Cli 编写指南 python实现cli 环境: python 3.8 库 python自带argparse 指南 简单示例 : cli.py import argparse def c ...

