這裏有很多這個問題的實例,但是當它們嘗試運行腳本時,它們都會列出錯誤。當我嘗試從終端運行我的腳本時,它會考慮一會兒,然後回到正常的終端提示符(沒有錯誤消息)。Python腳本在IDLE中運行,但不在終端中
我是新來的Python,所以請原諒我,如果我只是做錯了什麼,但爲了我的生活。 。 。當在IDLE中打開/運行時,它運行得非常好。
import paho.mqtt.client as mqtt
import paho.mqtt.publish as publish
import RPi.GPIO as GPIO
RELAY_PIN_1 = 23
RELAY_PIN_2 = 24
GPIO.setmode(GPIO.BCM)
GPIO.setwarnings(False)
GPIO.setup(RELAY_PIN_1, GPIO.OUT, initial=GPIO.HIGH)
GPIO.setup(RELAY_PIN_2, GPIO.OUT, initial=GPIO.HIGH)
def on_connect(client, userdata, flags, rc):
print("Connected with result code "+str(rc))
client.subscribe("/amber/1/1")
client.subscribe("/amber/1/2")
def on_message(client, userdata, msg):
if msg.topic == "/amber/1/1":
if msg.payload == b'ON':
GPIO.output(RELAY_PIN_1, GPIO.LOW)
elif msg.payload == b'OFF':
GPIO.output(RELAY_PIN_1, GPIO.HIGH)
if msg.topic == "/amber/1/2":
if msg.payload == b'ON':
GPIO.output(RELAY_PIN_2, GPIO.LOW)
elif msg.payload == b'OFF':
GPIO.output(RELAY_PIN_2, GPIO.HIGH)
client = mqtt.Client()
client.on_connect = on_connect
client.on_message = on_message
client.connect("10.0.0.163", 1883, 60)
client.loop_start()
如果你想知道,我一直在努力(與mqtt.py
是文件名)運行這個使用命令python mqtt.py
。另外,我在IDLE和終端中都使用了Python2.7。
如果它認爲它一秒鐘,然後返回到沒有錯誤的提示,通常意味着它運行完成。 –
這是我的一個想法,但'client.loop_start'行應該保留它,直到取消。 。 。或者至少我認爲它應該。無論哪種方式,它從IDLE運行時繼續運行並偵聽MQTT帖子。 – LiquidDrummer