背景:
python3.6
django=2.2
原因:
django连接MysqL时默认使用MysqLdb,但是MysqLdb不支持python3,使用pyMysqL代替时报错。
__init__.py(和settings.py同一目录)
import pyMysqL pyMysqL.install_as_MysqLdb()
解决方法:
第一种:把django版本降低
第二种:
1. 找到django\db\backends\MysqL安装的目录,如我的目录是:
D:\software\python3.6\Lib\site-packages\django\db\backends\MysqL
version = Database.version_info
在if中加入pass,并注释以下代码
raise ImproperlyConfigured('MysqLclient 1.3.13 or newer is required; you have %s.' % Database.__version__)
如:
version = Database.version_info if version < (1, 3, 13): pass """ raise ImproperlyConfigured( 'MysqLclient 1.3.13 or newer is required; you have %s.' % Database.__version__ ) """
3. 打开 operations.py文件
找到以下代码:
query = query.decode(errors='replace')
将decode更改为encode,如下所示
query = query.encode(errors='replace')
大功告成,可以正常运行。
参考文章:
https://stackoverflow.com/questions/55657752/django-installing-MysqLclient-error-MysqLclient-1-3-13-or-newer-is-required