django.core.exceptions.ImproperlyConfigured: mysqlclient 1.3.13 or newer is required; you have 0.9.3.

前端之家收集整理的这篇文章主要介绍了django.core.exceptions.ImproperlyConfigured: mysqlclient 1.3.13 or newer is required; you have 0.9.3.前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

背景:

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

2. 打开base.py文件,并找到以下代码

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

猜你在找的Django相关文章