python3.7+django2.2+mysql配置报错 Did you install mysqlclient?

在settings中设置了mysql。然后执行manage.py 报错
python3.7+django2.2+mysql配置报错 Did you install mysqlclient?_第1张图片
解决方式:

  • 安装pymysql
pip install pymysql
  • 在__init__,下增加如下内容
    python3.7+django2.2+mysql配置报错 Did you install mysqlclient?_第2张图片

    import pymysql
    pymysql.install_as_MySQLdb()
    
  • 接下来有可能遇到的问题
    python3.7+django2.2+mysql配置报错 Did you install mysqlclient?_第3张图片
    修改django/db/backends/mysql/目录下的 base.py文件
    在这里插入图片描述
    把下面这2行注释掉

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

    python3.7+django2.2+mysql配置报错 Did you install mysqlclient?_第4张图片
    注释掉以后本以为已经解决了,,
    然后输入makemigrate,,继续报错。。
    python3.7+django2.2+mysql配置报错 Did you install mysqlclient?_第5张图片

  • 继续修改
    把decode改成encode
    在django/db/backends/mysql/目录下,找到operations.py文件
    在这里插入图片描述
    将query = query.decode(errors=‘replace’)改为
    query = query.encode(errors=‘replace’)
    python3.7+django2.2+mysql配置报错 Did you install mysqlclient?_第6张图片

 if query is not None:
            #query = query.decode(errors='replace')
            query = query.encode(errors='replace')
        return query

最终解决了
python3.7+django2.2+mysql配置报错 Did you install mysqlclient?_第7张图片


题外话…
django 2.2貌似bug有点多,还是先用2.1版本学习稳妥些

你可能感兴趣的:(django)