【问题标题】:Error on compile MQTT Python Client编译 MQTT Python 客户端时出错
【发布时间】:2017-12-12 13:21:29
【问题描述】:

我在 Raspberry 上安装 MQTT 代理(Mosquitto)并将安装客户端(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)

【问题讨论】:

    标签: python raspberry-pi client mqtt paho


    【解决方案1】:

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

    该错误表明您使用的是mqtt.client() 而不是mqtt.Client()

    【讨论】:

    • hardillb 是正确的。您的 sn-p 的第 38 行正确显示 client = mqtt.Client() 但您引用的错误消息显示 client = mqtt.client() 该代码会给出错误消息。我知道,因为我来这里是出于同样的原因 :-) 我将 mqtt.client() 更改为 mqtt.Client() 并让我的工作正常。
    【解决方案2】:

    我有同样的问题,

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

    这是因为我当前的文件名是 random.py。尝试重命名你的client_mqtt.py,也许它可以解决你的问题。

    【讨论】:

      猜你喜欢
      • 2018-03-17
      • 1970-01-01
      • 1970-01-01
      • 2021-06-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多