You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Flask使用SQLAlchemy创建多数据库遇MySQLdb模块缺失错误求助

问题解决方法

核心错误原因

你遇到的ModuleNotFoundError: No module named 'MySQLdb'是因为:

  • MySQLdb是仅支持Python 2的旧版MySQL驱动,当前Python 3.x环境无法兼容该库。
  • 你的数据库连接URI使用了mysql://前缀,SQLAlchemy默认会尝试加载MySQLdb驱动,但该驱动未安装且不适配当前Python版本。

具体修复步骤

1. 安装兼容的MySQL驱动

根据需求选择以下一种驱动安装:

  • 推荐:mysqlclient(性能更优,接近原生驱动)
    pip install mysqlclient
    
  • 备选:PyMySQL(纯Python实现,兼容性好)
    pip install pymysql
    
    若选PyMySQL,需修改数据库URI前缀为mysql+pymysql://,明确告诉SQLAlchemy使用该驱动:
    app.config['SQLALCHEMY_BINDS'] = {
        'user_database': 'mysql+pymysql://root:password@localhost/userdatabase'
    }
    

2. 修正数据库URI格式错误

你的URI多了一个斜杠,mysql:///root:...应改为mysql://root:...,正确格式如下:

app.config['SQLALCHEMY_BINDS'] = {
    'user_database': 'mysql://root:password@localhost/userdatabase'
}

3. 代码小错误修正

User类中的方法名拼写错误:set_passoword需改为set_password,避免后续调用时触发AttributeError。

额外说明

如果你的目标是使用SQLite数据库(比如你提到的user_database.db),完全不需要用MySQL的URI,直接将bind的URI改为SQLite格式即可,无需安装MySQL驱动:

app.config['SQLALCHEMY_BINDS'] = {
    'user_database': 'sqlite:///' + os.path.join(path, 'user_database.db')
}

内容的提问来源于stack exchange,提问作者user23059245

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.27 20:22:43