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中使用CasperJS获取JS渲染生成的HTML内容的教程
Apr 09 Python
python中退出多层循环的方法
Nov 27 Python
Python八皇后问题解答过程详解
Jul 29 Python
pytorch程序异常后删除占用的显存操作
Jan 13 Python
python绘制玫瑰的实现代码
Mar 02 Python
Python IDE环境之 新版Pycharm安装详细教程
Mar 05 Python
Python自动重新加载模块详解(autoreload module)
Apr 01 Python
python代数式括号有效性检验示例代码
Oct 04 Python
通过代码实例了解Python3编程技巧
Oct 13 Python
总结Python常用的魔法方法
May 25 Python
Python jiaba库的使用详解
Nov 23 Python
Python利用capstone实现反汇编
Apr 06 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面向对象——访问修饰符介绍
2012/11/08 PHP
php强制用户转向www域名的方法
2015/06/19 PHP
PHP实现查询两个数组中不同元素的方法
2016/02/23 PHP
Symfony2学习笔记之系统路由详解
2016/03/17 PHP
&amp;lt;script defer&amp;gt; defer 是什么意思
2009/05/10 Javascript
jquery选择器(常用选择器说明)
2010/09/28 Javascript
Jquery进度条插件 Progress Bar小问题解决
2011/07/12 Javascript
JS调试必备的5个debug技巧
2014/03/07 Javascript
一个js过滤空格的小函数
2014/10/10 Javascript
JQuery实现鼠标滚轮滑动到页面节点
2015/07/28 Javascript
举例说明如何为JavaScript的方法参数设置默认值
2015/11/17 Javascript
关于JS中match() 和 exec() 返回值和属性的测试
2016/03/21 Javascript
浅谈JavaScript 中有关时间对象的方法
2016/08/15 Javascript
轻松搞定js表单验证
2016/10/13 Javascript
原生js图片轮播效果实现代码
2016/10/19 Javascript
详解vue-cli开发环境跨域问题解决方案
2017/06/06 Javascript
Vue单页式应用(Hash模式下)实现微信分享的实例
2017/07/21 Javascript
webpack实现热更新(实施同步刷新)
2017/07/28 Javascript
React Native中的RefreshContorl下拉刷新使用
2017/10/09 Javascript
微信小程序实现的贪吃蛇游戏【附源码下载】
2018/01/03 Javascript
nest.js 使用express需要提供多个静态目录的操作方法
2019/10/24 Javascript
跟老齐学Python之从if开始语句的征程
2014/09/14 Python
Python连接mssql数据库编码问题解决方法
2015/01/01 Python
解决python中 f.write写入中文出错的问题
2018/10/31 Python
Python使用pydub库对mp3与wav格式进行互转的方法
2019/01/10 Python
Python之NumPy(axis=0 与axis=1)区分详解
2019/05/27 Python
总裁岗位职责
2013/12/04 职场文书
幼师求职自荐信范文
2014/01/26 职场文书
职业生涯规划书结束语
2014/04/15 职场文书
党员承诺书格式
2014/05/21 职场文书
公共场所禁烟标语
2014/06/25 职场文书
上课随便讲话检讨书
2014/09/12 职场文书
黑暗中的舞者观后感
2015/06/18 职场文书
2015小学教育教学工作总结
2015/07/21 职场文书
一篇文章看懂MySQL主从复制与读写分离
2021/11/07 MySQL
CSS中float高度塌陷问题的四种解决方案
2022/04/18 HTML / CSS