2015-04-26 48 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 

一旦我删除哈希它开始工作确定。