Django3.0 :
django.core.exceptions.ImproperlyConfigured: mysqlclient 1.3.13 or newer is required; you have 0.9.3.
译文:django.core.exceptions。需要mysqlclient 1.3.13或更新版本;你有0.9.3。
一脸懵逼,特地再去pip看了看
图1
mysqlclient 版本是1.4.6好吗 , PyMySQL 是 0.9.3
下面说一下解决方案:
一、如果你是用的pymysql代替的mysqlclient,最迅速的解决方法就是在该项目的_init_.py文件中增加L3和L4的代码
如此再启动项目便不会再报上面的错误了,
这样做的原因是:
根据Traceback提示查看抛出异常处的代码片段(base.py", line 37):
这里有个版本判断校验的是Database库的version_info属性,当版本低于要求便raise了Exception;
那pymysql中的version_onfo属性是怎么返回的呢?找到pymysql相关源码片段:
从我前面的图1知道,pymsql的版本本来是0.9.3,而源码中直接将版本改成1.3.12;
因此我们只要在我们项目下的_init_.py文件中加上版本设定即可
二、原则上还是建议,直接使用mysqlclient,而非用pymysql代替。
mysqlclient的安装:
由于系统缺少对应的操作库,直接pip install mysqlclient会出错;
windows
可以在 https://www.lfd.uci.edu/~gohlke/pythonlibs/ 找mysqlclient离线包下载并安装
ubuntu系
centos系
安装完成以后要使用mysqlclient的话,记得把我们前面在_init_.py文件中增加的那两行代码注释或者删掉
接着运行可能会出现以下错误: