再谈Python使用PooledDB 难题,运行程序报DBUtils报错
运行报错
E:\demo>python -c “import DBUtils”
Traceback (most recent call last):
File “”, line 1, in
import DBUtils
ModuleNotFoundError: No module named ‘DBUtils’
查看版本
Found existing installation: DBUtils 3.1.2
报错原因是版本太高了
卸载
pip3 uninstall DBUtils
然后查看是否存在,不存在指定安装版本
pip install DBUtils==1.3
再次执行看看是否安装
python -c “import DBUtils”
没有报错,就是成功
找些代码运行试试
importpymysql from pymysqlimportError from DBUtils.PooledDBimportPooledDB# 需安装:pip install DBUtils# 配置连接池POOL=PooledDB(creator=pymysql,maxconnections=5,# 连接池最大连接数mincached=1,# 初始化时连接池至少创建的空闲连接数maxcached=2,# 连接池最大空闲连接数host="localhost",port=3306,user="root",password="root123456",database="test_mysql",charset="utf8mb4",cursorclass=pymysql.cursors.DictCursor)class MySQLHelper: @staticmethod def query(sql,args=None):"""查询数据""" conn=None cursor=None try: conn=POOL.connection()cursor=conn.cursor()cursor.execute(sql, args or())returncursor.fetchall()except Error as e: print(f"查询失败:{e}")return[]finally:ifcursor: cursor.close()ifconn: conn.close()@staticmethod def execute(sql,args=None):"""执行增/删/改""" conn=None cursor=None try: conn=POOL.connection()cursor=conn.cursor()cursor.execute(sql, args or())conn.commit()returncursor.rowcount except Error as e:ifconn: conn.rollback()print(f"执行失败:{e}")return0finally:ifcursor: cursor.close()ifconn: conn.close()# 调用示例if__name__=="__main__":# 查询res=MySQLHelper.query("SELECT * FROM users WHERE age < %s",(25,))print(res)# 插入count=MySQLHelper.execute("INSERT INTO users (name, age) VALUES (%s, %s)",("老二",23))print(f"插入 {count} 条")运行python xx.py
能成功就ok