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

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

准备将 Django 连接到 MySQL,在命令行输入命令 python manage.py makemigrations 后报错: django.core.exceptions.ImproperlyConfigured: mysqlclient 1.3.13 or newer is required; you have 0.9.3.
由于 mysqlclient 目前不支持高版本python,出现这个错误之后可以根据错误提示找到文件位置,打开 base.py 文件,找到以下代码:

/Users/vickytu/Documents/INSTALL/anaconda3/lib/python3.6/site-packages/django/db/backends/mysql/base.py    #本机目录

version = Database.version_info
if version < (1, 3, 13):
    raise ImproperlyConfigured('mysqlclient 1.3.13 or newer is required; you have %s.' % Database.__version__)

将 if 语句注释掉之后在执行命令就不会再报错

version = Database.version_info
# if version < (1, 3, 13):
#     raise ImproperlyConfigured('mysqlclient 1.3.13 or newer is required; you have %s.' % Database.__version__)

此时仍会会报错,报错信息如下:

AttributeError: ‘str’ object has no attribute ‘decode’

#找到operations.py文件(146行),将decode改为encode
#linux vim 查找快捷键:?decode
if query is not None:
    query = query.decode(errors=replace)
return query
#改为
if query is not None:
    query = query.encode(errors=replace)
return query

OK~ 不再报错

 摘自:https://www.cnblogs.com/dbf-/p/10838112.html

 
 
posted @ 2019-07-30 09:50  vickytjh  阅读(110)  评论(0)    收藏  举报