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

SQLAlchemy无法与Flask应用连接,报ModuleNotFoundError错误

Flask-SQLAlchemy 连接MySQL时出现ModuleNotFoundError: No module named 'MySQLdb'的解决办法

错误原因

MySQLdb是仅支持Python 2的MySQL驱动库,Python 3.x版本无法兼容,因此SQLAlchemy尝试导入它时会触发该错误。

解决方法

方法1:用PyMySQL替代(推荐,跨平台易安装)

  • 先安装PyMySQL:
    pip install pymysql
    
  • 在Flask应用初始化代码中,让PyMySQL伪装成MySQLdb,并修改连接字符串:
    from flask import Flask
    from flask_sqlalchemy import SQLAlchemy
    import pymysql
    
    # 让PyMySQL模拟MySQLdb的接口
    pymysql.install_as_MySQLdb()
    
    app = Flask(__name__)
    # 连接字符串改为mysql+pymysql://格式
    app.config['SQLALCHEMY_DATABASE_URI'] = 'mysql+pymysql://你的用户名:你的密码@localhost/数据库名'
    db = SQLAlchemy(app)
    

方法2:使用mysqlclient(性能更好的原生C扩展)

mysqlclient是MySQLdb的Python 3分支,性能优于PyMySQL,但安装需要系统依赖支持:

  • 先安装系统依赖:
    • macOS(通过Homebrew):
      brew install mysql-connector-c
      
    • Ubuntu/Debian:
      sudo apt-get install python3-dev default-libmysqlclient-dev build-essential
      
  • 安装mysqlclient:
    pip install mysqlclient
    
  • 连接字符串使用原生格式即可,无需额外配置:
    app.config['SQLALCHEMY_DATABASE_URI'] = 'mysql+mysqldb://你的用户名:你的密码@localhost/数据库名'
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.15 00:01:04