Mac Sonoma下Django切换MySQL引擎报_mysql未定义错误的解决求助
Django切换MySQL数据库时的
_mysql未定义问题及解决 配置修改过程
原SQLite数据库配置(settings.py):
DATABASES = { 'default': { 'ENGINE': 'django.db.backends.sqlite3', 'NAME': BASE_DIR / 'db.sqlite3', } }
修改为MySQL配置后:
DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', 'NAME': 'storefront', } }
执行python manage.py runserver时的报错
File "/Users/aditi/.local/share/virtualenvs/storefront-4vgosAeV/lib/python3.12/site-packages/django/db/backends/mysql/base.py", line 16, in <module> import MySQLdb as Database File "/Users/aditi/.local/share/virtualenvs/storefront-4vgosAeV/lib/python3.12/site-packages/MySQLdb/__init__.py", line 24, in <module> version_info, _mysql.version_info, _mysql.__file__ ^^^^^^ NameError: name '_mysql' is not defined
本地MySQLdb的__init__.py内容
try: from MySQLdb.release import version_info from . import _mysql assert version_info == _mysql.version_info except Exception: raise ImportError( "this is MySQLdb version {}, but _mysql is version {!r}\n_mysql: {!r}".format( version_info, _mysql.version_info, _mysql.__file__ ) )
环境信息
- 系统:Mac Sonoma 14.3
- Python版本:3.12.7
- MySQL安装方式:x86 DMG安装
已尝试的无效操作
在.zshrc中添加export PATH="/usr/local/mysql/bin:$PATH",问题未解决。
解决方法
已通过PyMySQL解决该问题。
内容的提问来源于stack exchange,提问作者Aditi B
相关产品推荐
相关产品推荐

