#彻底解决# mysqlclient 1.3.13 or newer is required; you have 0.9.3 错误

当我们启动django项目时,有时会遇到如下错误:

...
    raise ImproperlyConfigured('mysqlclient 1.3.13 or newer is required; you have %s.' % Database.__version__)
django.core.exceptions.ImproperlyConfigured: mysqlclient 1.3.13 or newer is required; you have 0.9.3.

出现上述错误的主要原因是mysqlclient(MySQLdb)版本过低,或pymysql替代mysqlclient时生成的版本过低,这里列举了三种解决方法:

方法一(推荐)

mysqlclient产生的原因之一就是为了解决在某些情况下pymysql不可用的问题,当pymysql不可用时,我们可以使用mysqlclient代替,具体操作如下:

yum install mysql-devel gcc gcc-devel python-devel
pip3 install mysqlclient

如果已经安装mysqlclient,可以尝试升级mysqlclient:

pip3 install -U mysqlclient

安装mysqlclient前要安装相关依赖,在安装完mysqlclient后,如果在项目同名文件夹下的__init__.py文件中包含如下代码,此时可以注释或删除

import pymysql
pymysql.version_info = (1, 3, 13, "final", 0)
pymysql.install_as_MySQLdb()

方法二

在项目同名文件夹下的__init__.py文件中添加如下代码:

import pymysql
pymysql.version_info = (1, 3, 13, "final", 0)
pymysql.install_as_MySQLdb()

要注意是三行代码,网上好多教程中没有包含第二行代码,导致虽然使用pymysql代替了MySQLdb,但版本不匹配,仍然会出现上述错误。

方法三

默认设置下在pycharm中创建Django项目时,会出现此问题。这是由django的默认版本2.2.6引起的,因此只需将django版本降级到2.1.7,然后终端中的错误就消失了,具体方法如下:

pip install Django==2.1.7

你可能感兴趣的:(django,mysql)