mysqlclient 1.3.3或更新版本是必需的;你有0.7.11.None

时间:2017-10-10 15:17:41

标签: python mysql django pymysql django-2.0

我正在使用python版本3.6.3和django版本2.0.1

当我在cmd中输入py manage.py migrate时,我得到了以下结果。

  

(mysqlclient 1.3.3或更新版本是必需的;你有0.7.11.None)

我试图将mysql数据库链接到我的django项目。

init.py codes:

import pymysql
pymysql.install_as_MySQLdb()

settings.py codes:

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': os.path.join(BASE_DIR, 'mysite'),
        'USER': 'root',
        'PASSWORD': '',
        'HOST': 'localhost',
        'PORT': '8000',
    }
}

2 个答案:

答案 0 :(得分:1)

我可以从您的设置中看到您正在使用PyMySQL。请注意,Django并未正式支持PyMySQL。

如果您使用MySQL,Django建议mysqlclient。正如错误消息所示,Django 2.0需要mysqlclient 1.3.3或更新版本。

PyMySQL has a shim用于MySQLdb兼容性,但在0.7.11中它假装为1.2.6,这对于Django 2.0来说太低了。

# we include a doctored version_info here for MySQLdb compatibility
version_info = (1,2,6,"final",0)

问题一直是fixed on the master branch,因此您在即将发布的0.8版本中无法获得该错误。

最后,请注意Django并不正式支持PyMySQL,所以如果使用它可能会遇到问题。例如,BinaryField存在问题。

答案 1 :(得分:1)

删除你的代码

#import pymysql
#pymysql.install_as_MySQLdb()

安装python包“mysqlclient”

pip install mysqlclient