2015-04-26 65 views
0

我想要按照提到的示例here來連接到Python中的代理。代碼只是停留在實例化部分。沒有迴應,沒有任何!什麼可能是錯的?Python Paho MQTT客戶端沒有實例化

[email protected] ~ $ python 
Python 2.7.3 (default, Mar 18 2014, 05:13:23) 
[GCC 4.6.3] on linux2 
Type "help", "copyright", "credits" or "license" for more information. 
>>> import paho.mqtt.client as mqtt 
>>> c = mqtt.Client("random") 

mqtt.Client從未完成。由於連接方法尚未被調用,我不確定,如果這可能是一個網絡問題。儘管如此,Ctrl-C顯示以下內容:

Traceback (most recent call last): 
    File "<stdin>", line 1, in <module> 
    File "/usr/local/lib/python2.7/dist-packages/paho/mqtt/client.py",  line 422, in __init__ 
self._sockpairR, self._sockpairW = _socketpair_compat() 
    File "/usr/local/lib/python2.7/dist-packages/paho/mqtt/client.py", line 271, in _socketpair_compat 
    sock2, address = listensock.accept() 
    File "/usr/lib/python2.7/socket.py", line 202, in accept 
    sock, addr = self._sock.accept() 
KeyboardInterrupt 
>>> 

這種情況與python3了。

UPDATE:此問題發生在Raspberry Pi上。在Ubuntu上,相同的代碼工作正常。

+0

您的PI是否啓用了IPv4網絡連接以及有效的本地主機名? – ralight

+0

那麼我得到一個有效的IP地址。另外Python Mosquitto客戶端運行良好。 – cogitoergosum

+0

PI上的'ping localhost'工作正常嗎? Mosquitto Python已經過時了。 – ralight

回答

0

看起來像網絡(sock)未正確配置。你測試了你的Raspberry Pi網絡嗎?

測試您是否收到答案:與ping 8.8.8.8

測試DNS:ping www.google.com

檢查是否有一個有效的網關:ip route show

檢查您/etc/resolv.conf有像有效條目:

nameserver 8.8.8.8 
nameserver 8.8.4.4 

也嘗試調用客戶端方法wi thout參數或與他們:

c = mqtt.Client() 

c = mqtt.Client(client_id="123456789", clean_session=True, userdata=None, protocol=MQTTv311) 
+0

以上所有內容均正確無誤。仍然是同樣的問題。 – cogitoergosum

0

我只是有相同的問題 - 運行client.py/usr/local/lib/python2.7/dist-packages/paho/mqtt/)手動將手頭起來:

271  sock2, address = listensock.accept() 

平本地主機會失敗(或將ping通某些主機出了互聯網,localhost.home.net上)原來在/etc/hosts127.0.0.1 localhost註釋掉:

#127.0.0.1 localhost 

一旦我刪除哈希它開始工作確定。