微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐