如何使用 MQTT Python 客户端解决错误"AttributeError: 'module' object has no attribute 'client'"



我在覆盆子上安装了MQTT代理(蚊子),并安装了客户端(Paho Client Python)。我尝试启动我的客户端,但是运行文件时有一个错误。

  File "client_mqtt.py", line 38, in <module>
    client = mqtt.client()
AttributeError: 'module' object has no attribute 'client'

我的完整文件是

import paho.mqtt.client as mqtt
import sys
#definicoes: 
Broker            = "localhost"
username          = "mosquitto"
password          = "mqtt"
PortaBroker       = 1883
KeepAliveBroker   = 60
client_name       = "Local"
topic_casa = "casa" 
topic_mcu  = "mcu" 

#Callback - conexao ao broker realizada
def on_connect(client, userdata, flags, rc):
    print("[STATUS] Conectado ao Broker. Resultado de conexao: "+str(rc))
    client.subscribe(topic_mcu)
    client.subscribe(topic_casa)
    
#Callback - mensagem recebida do broker
def on_message(client, userdata, msg):
    MensagemRecebida = str(msg.payload)
    
    print("[MSG RECEBIDA] Topico: "+msg.topic+" / Mensagem: "+MensagemRecebida)

def on_disconnect(client, userdata, rc):
    if rc != 0:
        print("Unexpected disconnection.")  
#programa principal:
try:
        print("[STATUS] Inicializando MQTT...")
        #inicializa MQTT:
        client = mqtt.Client()
        client.username_pw_set(username, password)
        client.on_connect     = on_connect
        client.on_message     = on_message
        client.on_disconnect  = on_disconnect
        client.connect(Broker, PortaBroker, KeepAliveBroker)
        client.loop_forever()
except KeyboardInterrupt:
        print "nCtrl+C pressionado, encerrando aplicacao e saindo..."
        sys.exit(0)

该错误与您发布的代码不匹配。

错误意味着您使用的是mqtt.client()不是mqtt.Client()

我也有同样的问题,

   File "random.py", line 3, in <module>
     import paho.mqtt.client as mqtt
AttributeError: 'module' object has no attribute 'client'

它发生了,因为我当前的文件名是随机的。尝试重命名您的client_mqtt.py,也许可以解决您的问题。

相关内容

最新更新