经典标准代码可以完美运行:
import paho.mqtt.client as mqtt
def on_connect(client, userdata, flags, rc):
print("Connected with result code "+str(rc))
client.subscribe("$SYS/#")
def on_message(client, userdata, msg):
print(msg.topic+" "+str(msg.payload))
client = mqtt.Client()
client.on_connect = on_connect
client.on_message = on_message
client.connect("mqtt.eclipse.org", 1883, 60)
client.loop_forever()
现在,我想将on_message回调函数移到新文件中,但这不起作用吗?无法正常工作,无法识别MQTT消息?不执行功能“ on_message”。 知道为什么吗?
import paho.mqtt.client as mqtt
from new_file import on_message
def on_connect(client, userdata, flags, rc):
print("Connected with result code "+str(rc))
client.subscribe("$SYS/#")
client = mqtt.Client()
client.on_connect = on_connect
client.on_message = on_message
client.connect("mqtt.eclipse.org", 1883, 60)
client.loop_forever()
新文件:
def on_message(client, userdata, msg):
print(msg.topic+" "+str(msg.payload))
答案 0 :(得分:0)
错误是不言自明的:
% python fails.py
File "fails.py", line 2
import on_message from new_file
因此,如果您更改
从new_file导入on_message
到
从new_file导入on_message
有效。