django2.2/mysql ImproperlyConfigured: mysqlclient 1.3.13 or newer is required; you have 0.9.3
報(bào)錯(cuò)環(huán)境 python=3.7,django=2.2被啼,PyMySQL=0.9.3
……
django.core.exceptions.ImproperlyConfigured: mysqlclient 1.3.13 or newer is required; you have 0.9.3.
解決方法:
Django連接MySQL時(shí)默認(rèn)使用MySQLdb驅(qū)動(dòng)眯停,但MySQLdb不支持Python3碗暗,因此這里將MySQL驅(qū)動(dòng)設(shè)置為pymysql鹦付,使用 pip install pymysql 進(jìn)行安裝山宾,然后在工程文件__init__.py添加以下代碼即可逊朽。
#安裝pymysqlpipinstallpymysql
1
2
#__init__.pyimportpymysqlpymysql.install_as_MySQLdb()
1
2
3
第一種:
django降到2.1.4版本就OK了
第二種(仍使用django 2.2版本):
#找到Python環(huán)境下 django包玄妈,并進(jìn)入到backends下的mysql文件夾cd/opt/anaconda3/envs/envAGC_Mini/lib/python3.6/site-packages/django/db/backends/mysql#文件列表如下
1
2
3
# 找到base.py文件侦镇,注釋掉 base.py 中如下部分(35/36行)ifversion<(1,3,3):raiseImproperlyConfigured("mysqlclient 1.3.3 or newer is required; you have %s"%Database.__version__)
1
2
3
此時(shí)仍會(huì)會(huì)報(bào)錯(cuò)灵疮,報(bào)錯(cuò)信息如下:
AttributeError: ‘str’ object has no attribute ‘decode’
#找到operations.py文件(46行),將decode改為encode#linux vim 查找快捷鍵:壳繁?decodeifquery is not None:? ? query=query.decode(errors='replace')returnquery#改為ifquery is not None:? ? query=query.encode(errors='replace')returnquery
1
2
3
4
5
6
7
8
9
OK~ 不再報(bào)錯(cuò)https://blog.csdn.net/weixin_33127753/article/details/89100552#comments