django2.2 和 PyMySQL版本兼容问题


Posted in Python onFebruary 17, 2020

错误信息为

django.core.exceptions.ImproperlyConfigured: mysqlclient 1.3.13 or newer is required; you have 0.9.3.

错误原因:

因为Django连接MySQL时默认使用MySQLdb驱动,但MySQLdb不支持Python3,因此这里将MySQL驱动设置为pymysql。由此产生的版本兼容问题。

pymysql安装方法:

#安装pymysql
pip install pymysql

#__init__.py
import pymysql
pymysql.install_as_MySQLdb()

解决办法:
1. django降到2.1.4版本
2. 修复源码
2.1 找到Python环境下 django包,并进入到backends下的mysql文件夹

# 使用此命令可以看到对应的文件夹目录
➜ daliyfresh pip install pymysql
Looking in indexes: https://mirrors.aliyun.com/pypi/simple/
Requirement already satisfied: pymysql in /Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages (0.9.3)

2.2 找到base.py文件,注释掉 base.py 中如下部分(35/36行)

if version < (1, 3, 3):
  raise ImproperlyConfigured("mysqlclient 1.3.3 or newer is required; you have %s" % Database.__version__)

2.3 此时仍然报错,找到operations.py文件,将decode改为encode

AttributeError: ‘str' object has no attribute ‘decode'

解决办法:

#linux vim 查找快捷键:?decode
if query is not None:
 query = query.decode(errors='replace')
return query
#改为
if query is not None:
 query = query.encode(errors='replace')
return query

测试,执行数据迁移

python manage.py makemigrations
python manage.py migrate

django2.2 和 PyMySQL版本兼容问题

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python中类的定义、继承及使用对象实例详解
Apr 30 Python
python+requests+unittest API接口测试实例(详解)
Jun 10 Python
windows下python和pip安装教程
May 25 Python
python逆序打印各位数字的方法
Jun 25 Python
python3 对list中每个元素进行处理的方法
Jun 29 Python
tensorflow使用神经网络实现mnist分类
Sep 08 Python
Pandas的read_csv函数参数分析详解
Jul 02 Python
解决Django 在ForeignKey中出现 non-nullable field错误的问题
Aug 06 Python
Windows10下 python3.7 安装 facenet的教程
Sep 10 Python
django model的update时auto_now不被更新的原因及解决方式
Apr 01 Python
Python中的wordcloud库安装问题及解决方法
May 27 Python
浅谈pytorch中torch.max和F.softmax函数的维度解释
Jun 28 Python
基于python3的socket聊天编程
Feb 17 #Python
python词云库wordCloud使用方法详解(解决中文乱码)
Feb 17 #Python
python词云库wordcloud的使用方法与实例详解
Feb 17 #Python
tensorflow保持每次训练结果一致的简单实现
Feb 17 #Python
Python基于Socket实现简单聊天室
Feb 17 #Python
TFRecord文件查看包含的所有Features代码
Feb 17 #Python
tensorflow之tf.record实现存浮点数数组
Feb 17 #Python
You might like
CentOS6.5 编译安装lnmp环境
2014/12/21 PHP
yii框架结合charjs统计上一年与当前年数据的方法示例
2020/04/04 PHP
JavaScript 编程引入命名空间的方法
2007/06/29 Javascript
javascript检查日期格式的函数[比较全]
2008/10/17 Javascript
Javascript生成json的函数代码(可以用php的json_decode解码)
2012/06/11 Javascript
Javascript对象中关于setTimeout和setInterval的this介绍
2012/07/21 Javascript
Js 回车换行处理的办法及replace方法应用
2013/01/24 Javascript
jquery放大镜效果超漂亮噢
2013/11/15 Javascript
js图片模糊切换显示特效的方法
2015/02/17 Javascript
js 获取元素在页面上的偏移量的方法汇总
2015/04/13 Javascript
jQuery插件简单实现方法
2015/07/18 Javascript
理解javascript函数式编程中的闭包(closure)
2016/03/08 Javascript
JQuery手速测试小游戏实现思路详解
2016/09/20 Javascript
JS对象深度克隆实例分析
2017/03/16 Javascript
利用Vue实现移动端图片轮播组件的方法实例
2017/08/23 Javascript
JS组件系列之Gojs组件 前端图形化插件之利器
2017/11/29 Javascript
VUE2 前端实现 静态二级省市联动选择select的示例
2018/02/09 Javascript
页面点击小红心js实现代码
2018/05/26 Javascript
Vue动态生成el-checkbox点击无法赋值的解决方法
2019/02/21 Javascript
JavaScript 获取滚动条位置并将页面滑动到锚点
2021/02/08 Javascript
python中cPickle用法例子分享
2014/01/03 Python
Django中模版的子目录与include标签的使用方法
2015/07/16 Python
Python cookbook(数据结构与算法)对切片命名清除索引的方法
2018/03/13 Python
Python实现线程状态监测简单示例
2018/03/28 Python
pandas 空的dataframe 插入列名的示例
2018/10/30 Python
修改python plot折线图的坐标轴刻度方法
2018/12/13 Python
用python实现刷点击率的示例代码
2019/02/21 Python
Python实现的服务器示例小结【单进程、多进程、多线程、非阻塞式】
2019/05/23 Python
在django模板中实现超链接配置
2019/08/21 Python
python去除删除数据中\u0000\u0001等unicode字符串的代码
2020/03/06 Python
图片上传插件ImgUploadJS:用HTML5 File API 实现截图粘贴上传、拖拽上传
2016/01/20 HTML / CSS
银河香水:Galaxy Perfume
2019/03/25 全球购物
模具设计与制造专业求职信
2014/07/19 职场文书
公司授权委托书
2014/10/17 职场文书
幼儿园教师求职信
2015/03/20 职场文书
mysql主从复制的实现步骤
2021/10/24 MySQL