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作用域用法实例详解
Mar 15 Python
Python入门之三角函数tan()函数实例详解
Nov 08 Python
mac下如何将python2.7改为python3
Jul 13 Python
python tkinter界面居中显示的方法
Oct 11 Python
Python数据可视化:顶级绘图库plotly详解
Dec 07 Python
Python3实现mysql连接和数据框的形成(实例代码)
Jan 17 Python
Python3.7黑帽编程之病毒篇(基础篇)
Feb 04 Python
关于Python 中的时间处理包datetime和arrow的方法详解
Mar 19 Python
python 已知平行四边形三个点,求第四个点的案例
Apr 12 Python
Python学习之路之pycharm的第一个项目搭建过程
Jun 18 Python
python与js主要区别点总结
Sep 13 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
discuz程序的PHP加密函数原理分析
2011/08/05 PHP
php 判断数组是几维数组
2013/03/20 PHP
php中addslashes函数与sql防注入
2014/11/17 PHP
php简单的上传类分享
2016/05/15 PHP
PHP针对redis常用操作实例详解
2019/08/17 PHP
JavaScript获取onclick、onchange等事件值的代码
2013/07/22 Javascript
浅谈Javascript如何实现匀速运动
2014/12/19 Javascript
js比较日期大小的方法
2015/05/12 Javascript
JavaScript位移运算符(无符号) &gt;&gt;&gt; 三个大于号 的使用方法详解
2016/03/31 Javascript
JavaScript第一篇之实现按钮全选、功能
2016/08/21 Javascript
js实现文字超出部分用省略号代替实例代码
2016/09/01 Javascript
bootstrap datepicker 与bootstrapValidator同时使用时选择日期后无法正常触发校验的解决思路
2016/09/28 Javascript
微信小程序 解析网页内容详解及实例
2017/02/22 Javascript
浅谈Angular路由守卫
2017/08/26 Javascript
对于input 框限定输入值为浮点型的js代码
2017/09/25 Javascript
微信小程序判断页面是否从其他页面返回的实例代码
2019/07/03 Javascript
jquery插件开发模式实例详解
2019/07/20 jQuery
安装多版本Vue-CLI的实现方法
2020/03/24 Javascript
[49:20]2014 DOTA2国际邀请赛中国区预选赛5.21 CIS VS TongFu
2014/05/22 DOTA
Python实现爬虫爬取NBA数据功能示例
2018/05/28 Python
python使用matplotlib模块绘制多条折线图、散点图
2020/04/26 Python
Python爬取知乎图片代码实现解析
2019/09/17 Python
如何基于python测量代码运行时间
2019/12/25 Python
python3下pygame如何实现显示中文
2020/01/11 Python
python装饰器实现对异常代码出现进行自动监控的实现方法
2020/09/15 Python
python实现简单的tcp 文件下载
2020/09/16 Python
python uuid生成唯一id或str的最简单案例
2021/01/13 Python
CSS3属性box-shadow使用详细教程
2012/01/21 HTML / CSS
总结30个CSS3选择器
2017/04/13 HTML / CSS
HTML5 File API改善网页上传功能
2009/08/19 HTML / CSS
俄罗斯购买自行车网站:Vamvelosiped
2021/01/29 全球购物
美国家居装饰购物网站:Amanda Lindroth
2020/03/25 全球购物
《故乡》教学反思
2014/04/10 职场文书
西安事变观后感
2015/06/12 职场文书
如何通过cmd 连接阿里云服务器
2022/04/18 Servers
Java 异步任务计算FutureTask
2022/04/28 Java/Android