Python连接RabbitMQ报错:TypeError参数异常求助
解决pika.SelectConnection的TypeError: unexpected keyword argument 'stop_ioloop_on_close'问题
这是pika版本更新带来的API变更问题——最新版的pika已经移除了stop_ioloop_on_close这个初始化参数,所以你传入这个参数时会触发类型错误。
解决方案步骤:
确认你的pika版本
可以在终端执行命令查看当前安装的pika版本:pip show pika如果你安装的是1.0.0及以上版本,这个参数确实已经被官方移除了。
修改连接代码
直接去掉stop_ioloop_on_close=False这个参数即可,修改后的代码如下:connection = pika.SelectConnection(parameters, self.on_connection_open, self.on_open_error_callback)手动控制IOLoop的停止行为
旧版本中stop_ioloop_on_close的作用是控制连接关闭时是否自动停止IOLoop。在新版pika中,这个逻辑需要你手动在连接关闭回调里处理:- 若希望连接关闭时停止IOLoop,在
on_connection_closed回调中添加ioloop.stop():def on_connection_closed(self, connection, reply_code, reply_text): # 你的其他关闭处理逻辑 self.ioloop.stop() - 若不需要自动停止IOLoop,不添加上述代码即可,IOLoop会继续运行。
- 若希望连接关闭时停止IOLoop,在
补充说明
pika在1.0.0版本的架构重构中,简化了连接相关的API,移除了一些不再推荐的自动行为参数,官方建议开发者手动控制IOLoop的生命周期,以获得更灵活的程序控制权。
内容的提问来源于stack exchange,提问作者Ba.Lal
相关产品推荐
相关产品推荐

