【问题标题】:How to use DBUtils in Python 3?如何在 Python 3 中使用 DBUtils?
【发布时间】:2016-08-01 09:44:23
【问题描述】:

我有以下代码:

from DBUtils.PooledDB import PooledDB
import pgdb
pool = PooledDB(creator=MySQLdb,
            mincached=1,
            maxcached=20,
            host='127.0.0.1',
            port=3306,
            user='root',
            passwd='XXX',
            db='test')

但它找不到MySQLdb 模块。 Python 3 可以安装 MySQLdb 吗?如果没有,应该如何更改代码来初始化池?

【问题讨论】:

    标签: python python-3.x mysql-python


    【解决方案1】:

    你需要在你的代码中import MySQLdb,python 不会知道 MySQLdb 除非你实际导入它,PooledDB 直接使用创建者:

    creator: either an arbitrary function returning new DB-API 2
            connection objects or a DB-API 2 compliant database module
    

    但即使进行了更改,它也无法正常工作,因为 MySQLdb 没有 python3 版本,但是您可以使用 python mysql.connector

    【讨论】:

      【解决方案2】:

      PyMySQL 社区目前维护着大多数相关的 MySQL 适配器。它包括mysqlclient,它是MySQL-python (MySQLdb) 和纯Python PyMySQL 的Python 3 兼容分支。将 mysqlclient 视为 MySQL-python 的替代品是安全的。无论如何它正在接管,请参阅this long thread

      因此,您的代码应该在您的pip install mysqlclient 之后按原样工作。使用 PyMySQL 它也应该可以工作。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2017-08-20
        • 2013-02-16
        • 2018-09-06
        • 2012-03-24
        • 2019-12-24
        • 2020-03-15
        • 2019-10-22
        • 2014-12-02
        相关资源
        最近更新 更多