Python Paho MQTT客户端未实例化

时间:2015-04-26 14:50:45

标签: python mqtt paho

我想按照提到的here示例连接到Python中的代理。代码只是停留在实例化部分。没有回应,没有任何反应!可能有什么不对?

pi@raspberrypi ~ $ 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无法完成。由于尚未调用connect方法,我不确定,如果这可能是网络问题。然而,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也会发生这种情况。

更新:此问题发生在Raspberry Pi上。在Ubuntu上,相同的代码工作正常。

2 个答案:

答案 0 :(得分:0)

看起来网络(sock)未正确配置。你测试了Raspberry Pi网络吗?

测试您是否收到以下答案:ping 8.8.8.8

使用ping www.google.com

测试dns

检查您是否拥有有效网关:ip route show

检查/etc/resolv.conf是否有有效条目:

nameserver 8.8.8.8
nameserver 8.8.4.4

还尝试调用不带参数的Client方法或所有方法:

c = mqtt.Client()

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

答案 1 :(得分:0)

我刚刚遇到完全相同的问题 - 手动运行client.py/usr/local/lib/python2.7/dist-packages/paho/mqtt/)会提交:

271     sock2, address = listensock.accept()

ping localhost会失败(或者会在互联网上ping一些主机,localhost.home.net;)原来我在127.0.0.1 localhost注释了/etc/hosts

 #127.0.0.1   localhost

一旦我删除了哈希,它就开始工作了。