背景:
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
本文地址: http://www.chenxm.cc/article/859.html
版权声明: 本文为原创文章,版权归 陈新明 所有,欢迎分享本文,转载请保留出处!