django2.2 和 PyMySQL版本兼容问题
错误信息为
django.core.exceptions.ImproperlyConfigured:mysqlclient1.3.13ornewerisrequired;youhave0.9.3.
错误原因:
因为Django连接MySQL时默认使用MySQLdb驱动,但MySQLdb不支持Python3,因此这里将MySQL驱动设置为pymysql。由此产生的版本兼容问题。
pymysql安装方法:
#安装pymysql pipinstallpymysql #__init__.py importpymysql pymysql.install_as_MySQLdb()
解决办法:
1.django降到2.1.4版本
2.修复源码
2.1找到Python环境下django包,并进入到backends下的mysql文件夹
#使用此命令可以看到对应的文件夹目录 ➜daliyfreshpipinstallpymysql Lookinginindexes:https://mirrors.aliyun.com/pypi/simple/ Requirementalreadysatisfied:pymysqlin/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages(0.9.3)
2.2找到base.py文件,注释掉base.py中如下部分(35/36行)
ifversion<(1,3,3): raiseImproperlyConfigured("mysqlclient1.3.3ornewerisrequired;youhave%s"%Database.__version__)
2.3此时仍然报错,找到operations.py文件,将decode改为encode
AttributeError:‘str'objecthasnoattribute‘decode'
解决办法:
#linuxvim查找快捷键:?decode ifqueryisnotNone: query=query.decode(errors='replace') returnquery #改为 ifqueryisnotNone: query=query.encode(errors='replace') returnquery
测试,执行数据迁移
pythonmanage.pymakemigrations pythonmanage.pymigrate
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。