报错:django2.2/mysql ImproperlyConfigured: mysqlclient 1.3.13 or newer is required; you have 0.9.3

报错:django2.2/mysql ImproperlyConfigured: mysqlclient 1.3.13 or newer is required; you have 0.9.3

声明:感谢原作者解惑https://blog.csdn.net/weixin_33127753/article/details/89100552#comments

环境:python3.7+django2.2+Pymysql=0.93

解决办法:

    步骤:报错意为“需要mysqlclient 1.3.13或更高版本;您有0.9.3版本”,所以下载更高版本的mysqlclient(大于1.3.13版本)

Django连接MySQL时默认使用MySQLdb驱动,但MySQLdb不支持Python3,因此这里将MySQL驱动设置为pymysql。

首先pip安装pymysql:

#通过pip安装pymysql
pip install pymysql

然后在工程的__init__.py文件中写入如下代码:

#__init__.py
import pymysql
pymysql.install_as_MySQLdb()

绿色字体请勿模仿,作者走了个远路!

因为报错需要更高版本的mysqlclient所以我就去下载了mysqlclient1.4.2版本,可以去官网下载最新版本,也可以手动下载轮子

当然下载轮子页面太大可以ctrl+f去搜索mysqlclient

然后:

#安装最新版本mysqlclient
pip install mysqlclient==1.4.2

以上绿色字体为作者走的弯路,既然用PyMySql代替mysqlclient了为什么还要下载安装mysqlclient呢?作者脑子一瞬间瓦特了。

    方法一:django版本降至2.14版本以下即可。

如果想继续使用django2.2请使用方法二:

    方法二:找到python文件下的django文件>db文件>backends>mysql>base.py

打开后将如下代码注释

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

注释好了之后重新启动django服务器:

python manage.py runserver

但是会报一个错误,别着急:

 

报错信息:

AttributeError: 'str' object has no attribute 'decode'

解决办法:

找到python文件下的django文件>db文件>backends>mysql>operations.py

打开后ctrl+f搜索query.decode

decode改为encode即可。

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 7
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值