早教吧 育儿知识 作业答案 考试题库 百科 知识分享
早教吧百科知识频道 --> IT百科 -->python -->

NameError: name ‘_mysql‘ is not defined

场景/问题/来源
django开发

Django启动manage.py报错NameError: name ‘_mysql‘ is not defined

知识/回答

出现上述报错的原因是:

Mysqldb 不兼容 python3.5 以后的版本

解决办法:

使用pymysql代替MySQLdb

步骤:

安装pymysql:pip install pymysql

vi编辑项目中setting.py所在目录下的__init.py,或直接在当前py文件最开头添加如下:

import pymysql

pymysql.install_as_MySQLdb()

重新执行后报错:

django.core.exceptions.ImproperlyConfigured: mysqlclient 1.4.4 or newer is required; you have 0.9.3.

有一个好办法,直接指定版本,比其他的解决方法简单一些,继续编辑刚才的__init.py 添加:

pymysql.version_info = (1, 4, 4, "final", 0)

即修改后的__init.py为:

import pymysql

pymysql.install_as_MySQLdb()

pymysql.version_info = (1, 4, 4, "final", 0)