当前位置: 首页 > news >正文

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

目录

  • 一、问题描述
  • 二、原因分析
  • 三、解决方案
    • ✅ 推荐:安装 `pymysql`(纯 Python,跨平台,安装简单)
    • ✅ 可选:安装 `mysqlclient`(更快,但需要本地编译环境)
    • ✅ 总结
  • 四、mysql-connector-python为什么不行

一、问题描述

在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 pymysqlpymysql.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 MySQLDatabasedb = 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_o8888888o88" . "88(| -_- |)O\  =  /O____/`---'\____.'  \\|     |//  `./  \\|||  :  |||//  \/  _||||| -:- |||||-  \|   | \\\  -  /// |   || \_|  ''\---/''  |   |\  .-\__  `-`  ___/-. /___`. .'  /--.--\  `. . __."" '<  `.___\_<|>_/___.'  >'"".| | :  `- \`.;`\ _ /`;.`/ - ` : | |\  \ `-.   \_ __\ /__ _/   .-` /  /
======`-.____`-.___\_____/___.-`____.-'======`=---='
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^佛祖保佑       永无BUG
*/
http://www.dtcms.com/a/341006.html

相关文章:

  • 亚马逊运营破局:销量与ACOS的动态平衡之道
  • 网页作品惊艳亮相!这个浪浪山小妖怪网站太治愈了!
  • 8 月中 汇报下近半个月都在做些什么
  • VR交通安全学习机-VR交通普法体验馆方案
  • Vue3源码reactivity响应式篇之数组代理的方法
  • Android studio gradle 下载不下来
  • 23种设计模式——模板方法模式(Template Method Pattern)详解
  • 在 Ubuntu Linux LTS 上安装 SimpleScreenRecorder 以录制屏幕
  • 软考中级习题与解答——第一章_数据结构与算法基础(1)
  • 软考网工选择题节选-2
  • uniapp:h5链接拉起支付宝支付
  • uni-app跨端开发最后一公里:详解应用上架各大应用商店全流程
  • 从协同设计到绿色制造:工业云渲染的价值闭环
  • uniapp 手写签名组件开发全攻略
  • 三极管单电源供电中电阻关系的理解
  • Oracle:创建触发器,当目标表相关字段有数据变动时,存入临时表
  • 开发避坑指南(29):微信昵称特殊字符存储异常修复方案
  • 0基础安卓逆向原理与实践:第5章:APK结构分析与解包
  • pinctrl和gpio子系统实验
  • 读者写者问题
  • 接地电阻柜的核心作用
  • postman+newman+jenkins接口自动化
  • Python 文件操作与异常处理全解析
  • 7.Kotlin的日期类
  • Flink实现Exactly-Once语义的完整技术分解
  • 自动驾驶导航信号使用方式调研
  • ABAP OOP革命:ALV报表面向对象改造深度实战
  • PiscCode使用MediaPipe Face Landmarker实现实时人脸特征点检测
  • Tomcat 性能优化终极指南
  • 从零开始学AI——13