为什么 Paho MQTT 给我“不支持的回调 API 版本”错误?

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

我正在尝试实现 Paho Python MQTT 并连接到在线代理,但代码似乎出现错误。

ValueError: Unsupported callback API version: version 2.0 added a callback_api_version, see migrations.md for details

我试图从给定网站实现一个简单的泛美卫生组织客户端示例;以下将重现该问题:

from paho.mqtt import client as mqtt_client
import random

broker = 'broker.emqx.io'
port = 1883
topic = "python/mqtt"
client_id = f'python-mqtt-{random.randint(0, 1000)}'
client = mqtt_client.Client(client_id)
python mqtt paho hivemq
1个回答
3
投票
Paho Python MQTT

Release 2.0.0 包含重大更改;这意味着,如果没有一些(最小的)修改,为 v1.x 编写的代码将无法工作。由于 v2.0.0 几天前(2024 年 2 月 11 日)才发布,大多数示例(包括您引用的示例)将无法工作。

所需的更改已记录在此处;在您的情况下,唯一需要的更改可能是添加一个参数更改:

client = mqtt_client.Client(client_id)

至:

client = mqtt_client.Client(mqtt_client.CallbackAPIVersion.VERSION1, client_id)

这会将库配置为使用 v1 回调 API(与旧版本的库一起使用)。我建议阅读上面链接的文档并计划迁移到

CallbackAPIVersion.API_VERSION2

另一种选择是安装 v1 版本(v1.6.1 是最新版本;

pip install paho-mqtt<2.0.0
将安装此版本)。 V2 确实包含相当多的修复/增强功能,因此值得考虑使用该版本。

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