Python 3:类型错误:无法使用抽象方法 create_connection 实例化抽象类 BaseConnection

问题描述 投票:0回答:1

我正在将一些非常旧的Python代码从Python 2升级到Python 3。有一个简单的方法可以使用Pika检查rabbitmq连接。

    from contextlib import closing
    from pika import URLParameters, BaseConnection

    def check_rabbitmq(self):
        conn_params = URLParameters(self.config.rabbitmq_params['amqp.url'])
        with closing(BaseConnection(conn_params)):
            return True

但是,在 Python 3 中它会返回

TypeError: Can't instantiate abstract class BaseConnection with abstract method create_connection
我觉得我错过了一些明显的东西。

python pika
1个回答
0
投票

根据错误,

Can't instantiate abstract class BaseConnection with abstract method create_connection
。为此,我们可以做的是使用它的具体子类之一来建立连接,例如 BlockingConnection。使用下面是修改后的代码块:

def check_rabbitmq(self):
    conn_params = pika.URLParameters(self.config.rabbitmq_params['amqp.url'])
    with pika.BlockingConnection(conn_params) as connection:
        return True

确保您也

import pika
位于顶部。

© www.soinside.com 2019 - 2024. All rights reserved.