【沉浸式解决问题】peewee.ImproperlyConfigured: MySQL driver not installed!

一、问题描述

在python项目中连接数据库,刚开始用的mysql-connector-python,切换到peewee后连接错误

peewee.ImproperlyConfigured: MySQL driver not installed!
在这里插入图片描述


二、原因分析

peewee不附带安装数据库驱动,需要手动安装,如果连接其他数据库则需要安装其他数据库对应的驱动


三、解决方案

✅ 推荐:安装 pymysql(纯 Python,跨平台,安装简单)

pip install pymysql
uv add pymysql

然后在你的项目入口处(比如 main.py__init__.py)加上:

import pymysql
pymysql.install_as_MySQLdb()

安装完成后,运行以下代码测试:

普通版

from peewee import MySQLDatabase
import pymysql
pymysql.install_as_MySQLdb()  # 将 PyMySQL 作为 MySQLdb 使用
 
db = MySQLDatabase('database_name', user='username', password='password', host='localhost', port=3306)

连接池版

from playhouse.pool import PooledMySQLDatabase
import pymysql

pymysql.install_as_MySQLdb()  # 将 PyMySQL 作为 MySQLdb 使用

db = PooledMySQLDatabase('test', user='root', password='root', host='127.0.0.1', port=3306)
print(db.connect())

显示True则说明连接成功
在这里插入图片描述


✅ 可选:安装 mysqlclient(更快,但需要本地编译环境)

# Linux / macOS
pip install mysqlclient

# Windows 上推荐使用预编译的 wheel:
pip install mysqlclient‑1.4.6‑cp39‑cp39‑win_amd64.whl

注意:mysqlclient 依赖本地 MySQL 开发库,安装可能失败,尤其在 Windows 上。

安装完成后,运行以下代码测试:
Peewee 会自动使用 mysqlclient 作为 MySQL 驱动。

from peewee import MySQLDatabase
 
db = MySQLDatabase('database_name', user='username', password='password', host='localhost', port=3306)

✅ 总结

驱动安装方式是否推荐
pymysqlpip install pymysql + install_as_MySQLdb()✅ 推荐
mysqlclientpip install mysqlclient⚠️ 可选(需编译)

你只需安装一个驱动即可解决问题。建议优先使用 pymysql

四、mysql-connector-python为什么不行

为什么 mysql-connector-python 不行?
mysql-connector-python 并不是 Peewee 支持的 MySQL 驱动。Peewee 只支持以下两种 MySQL 驱动:

  • ✅ PyMySQL(纯 Python,跨平台,推荐)
  • ✅ mysqlclient(基于 C 的 libmysqlclient,性能好,但难装)

而 mysql-connector-python 是 Oracle 官方提供的驱动,但 Peewee 没有适配它,所以即使你安装了,也会报错。


喜欢的点个关注吧><!祝你永无bug!

/*
                   _ooOoo_
                  o8888888o
                  88" . "88
                  (| -_- |)
                  O\  =  /O
               ____/`---'\____
             .'  \\|     |//  `.
            /  \\|||  :  |||//  \
           /  _||||| -:- |||||-  \
           |   | \\\  -  /// |   |
           | \_|  ''\---/''  |   |
           \  .-\__  `-`  ___/-. /
         ___`. .'  /--.--\  `. . __
      ."" '<  `.___\_<|>_/___.'  >'"".
     | | :  `- \`.;`\ _ /`;.`/ - ` : | |
     \  \ `-.   \_ __\ /__ _/   .-` /  /
======`-.____`-.___\_____/___.-`____.-'======
                   `=---='
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
            佛祖保佑       永无BUG
*/
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

荔枝吻

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值