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 29 Python
Python利用带权重随机数解决抽奖和游戏爆装备问题
Jun 16 Python
基于Django的ModelForm组件(详解)
Dec 07 Python
python使用mysql的两种使用方式
Mar 07 Python
Python实现压缩文件夹与解压缩zip文件的方法
Sep 01 Python
python消除序列的重复值并保持顺序不变的实例
Nov 08 Python
opencv3/python 鼠标响应操作详解
Dec 11 Python
Python实现结构体代码实例
Feb 10 Python
解决django FileFIELD的编码问题
Mar 30 Python
keras训练曲线,混淆矩阵,CNN层输出可视化实例
Jun 15 Python
如何卸载python插件
Jul 08 Python
Python爬虫 简单介绍一下Xpath及使用
Apr 26 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
php 正则表达式小结
2009/08/31 PHP
php过滤XSS攻击的函数
2013/11/12 PHP
PHP实现的mongoDB数据库操作类完整实例
2018/04/10 PHP
javascript错误的认识不用关心内存管理
2012/12/15 Javascript
用JavaScript实现用一个DIV来包装文本元素节点
2014/09/09 Javascript
使用AmplifyJS组件配合JavaScript进行编程的指南
2015/07/28 Javascript
javascript密码强度校验代码(两种方法)
2015/08/10 Javascript
JavaScript实现网页加载进度条代码超简单
2015/09/21 Javascript
JavaScript将DOM事件处理程序封装为event.js 出现的低级错误问题
2016/08/03 Javascript
详解webpack+es6+angular1.x项目构建
2017/05/02 Javascript
JavaScript创建对象方法实例小结
2018/09/03 Javascript
基于游标的分页接口实现代码示例
2018/11/12 Javascript
原生js实现移动端Touch轮播图的方法步骤
2019/01/03 Javascript
微信小程序地图导航功能实现完整源代码附效果图(推荐)
2019/04/28 Javascript
jQuery实现全选、反选和不选功能的方法详解
2019/12/04 jQuery
使用JS location实现搜索框历史记录功能
2019/12/23 Javascript
Vue的Eslint配置文件eslintrc.js说明与规则介绍
2020/02/03 Javascript
vue实现图片上传功能
2020/05/28 Javascript
vuex中store存储store.commit和store.dispatch的用法
2020/07/24 Javascript
html5以及jQuery实现本地图片上传前的预览代码实例讲解
2021/03/01 jQuery
通过5个知识点轻松搞定Python的作用域
2016/09/09 Python
python中lambda()的用法
2017/11/16 Python
urllib和BeautifulSoup爬取维基百科的词条简单实例
2018/01/17 Python
Python根据服务获取端口号的方法
2019/09/25 Python
Python调用Windows命令打印文件
2020/02/07 Python
Django使用rest_framework写出API
2020/05/21 Python
python一些性能分析的技巧
2020/08/30 Python
迪卡侬中国官网:Decathlon中国
2020/08/10 全球购物
什么是lambda函数
2013/09/17 面试题
汽车工程专业应届生求职信
2013/10/19 职场文书
英语故事演讲稿
2014/04/29 职场文书
项目投资合作意向书
2014/07/29 职场文书
服务员岗位职责范本
2015/04/09 职场文书
2015年学校远程教育工作总结
2015/07/20 职场文书
导游词之重庆渣滓洞
2020/01/08 职场文书
MySQL中使用or、in与union all在查询命令下的效率对比
2021/05/26 MySQL