python2 报错:django.core.exceptions.ImproperlyConfigured: Error loading MySQLdb module: No module named MySQLdb
开发环境的处理方式
如果你已经在你的 Django 项目中使用了 import pymysql 和 pymysql.install_as_MySQLdb(),但仍然收到 “No module named MySQLdb” 的错误,那么可能是以下原因:
你可能没有在正确的位置添加这些代码。这些代码应该在你的 Django 项目的主 init.py 文件中,这样它们就会在 Django 启动时运行。这个文件通常位于你的项目的根目录下。
第一种
import pymysql
pymysql.install_as_MySQLdb()
你可能在虚拟环境中运行你的 Django 项目,但是在全局环境中安装了 PyMySQL。确保你在正确的环境中安装了 PyMySQL。
你的 Django 设置可能仍然指向 MySQLdb。检查你的 Django 设置(通常在 settings.py 文件中),确保 DATABASES 设置使用的是 ‘ENGINE’: ‘django.db.backends.mysql’。
如果以上都无法解决问题,你可以尝试直接在你的 settings.py 文件中替换数据库引擎为 PyMySQL:
第二种
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'databasename',
'USER': 'youruser',
'PASSWORD': 'yourpassword',
'HOST': 'yourdatabasehost',
'PORT': '3306',
'OPTIONS': {
'charset': 'utf8mb4',
'init_command': 'SET sql_mode=STRICT_TRANS_TABLES',
},
}
}
try:
import pymysql
pymysql.version_info = (1, 4, 2, "final", 0)
pymysql.install_as_MySQLdb()
except ImportError:
pass
这段代码会尝试导入 PyMySQL,并将其安装为 MySQLdb。如果导入失败,它不会抛出错误。