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 相关文章推荐
Fabric 应用案例
Aug 28 Python
python处理按钮消息的实例详解
Jul 11 Python
python自动12306抢票软件实现代码
Feb 24 Python
[原创]Python入门教程4. 元组基本操作
Oct 31 Python
解决使用PyCharm时无法启动控制台的问题
Jan 19 Python
详解python中递归函数
Apr 16 Python
Python 字符串类型列表转换成真正列表类型过程解析
Aug 26 Python
Python csv模块使用方法代码实例
Aug 29 Python
Python Numpy数组扩展repeat和tile使用实例解析
Dec 09 Python
tensorflow查看ckpt各节点名称实例
Jan 21 Python
flask开启多线程的具体方法
Aug 02 Python
解决python存数据库速度太慢的问题
Apr 23 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
改造一台复古桌面收音机
2021/03/02 无线电
PHP自带ZIP压缩、解压缩类ZipArchiv使用指南
2015/03/03 PHP
CI框架出现mysql数据库连接资源无法释放的解决方法
2016/05/17 PHP
thinkphp5 migrate数据库迁移工具
2018/02/20 PHP
PHP实现的解汉诺塔问题算法示例
2018/08/06 PHP
tp5递归 无限级分类详解
2019/10/18 PHP
通过jquery实现tab标签浏览效果
2007/02/20 Javascript
jQuery 名称冲突的解决方法
2011/04/08 Javascript
仿谷歌主页js动画效果实现代码
2013/07/14 Javascript
JavaScript中for-in遍历方式示例介绍
2014/02/11 Javascript
jQuery中[attribute!=value]选择器用法实例
2014/12/31 Javascript
前端性能优化及技巧
2016/05/06 Javascript
javascript 小数乘法结果错误的处理方法
2016/07/28 Javascript
JavaScript模仿Pinterest实现图片预加载功能
2016/10/25 Javascript
jQuery Password Validation密码验证
2016/12/30 Javascript
jQuery实现二维码扫描功能
2017/01/09 Javascript
为你的微信小程序体积瘦身详解
2017/05/20 Javascript
使用vue2实现购物车和地址选配功能
2018/03/29 Javascript
Vue 前端实现登陆拦截及axios 拦截器的使用
2019/07/17 Javascript
js实现简单抽奖功能
2020/11/24 Javascript
[47:36]Optic vs Newbee 2018国际邀请赛小组赛BO2 第二场 8.17
2018/08/18 DOTA
Python httplib,smtplib使用方法
2008/09/06 Python
Centos下实现安装Python3.6和Python2共存
2018/08/15 Python
python如何创建TCP服务端和客户端
2018/08/26 Python
Scrapy框架爬取Boss直聘网Python职位信息的源码
2019/02/22 Python
解决pycharm不能自动补全第三方库的函数和属性问题
2020/03/12 Python
在django中form的label和verbose name的区别说明
2020/05/20 Python
css3中用animation的steps属性制作帧动画
2019/04/25 HTML / CSS
美国时尚大码女装购物网站:Avenue
2019/05/24 全球购物
医药代表个人的求职信分享
2013/12/08 职场文书
销售业务员岗位职责
2014/01/29 职场文书
学生会干部自我鉴定2014
2014/09/18 职场文书
对照四风自我剖析材料
2014/10/07 职场文书
学习型家庭事迹材料
2014/12/20 职场文书
安全生产学习心得体会
2016/01/18 职场文书
使用Django实现商城验证码模块的方法
2021/06/01 Python