2015-04-26 2 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 не завершен. Поскольку метод 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 тоже.

ОБНОВЛЕНИЕ: Эта проблема возникает на Малиновой Пи. На Ubuntu тот же код работает отлично.

+0

Включен ли ваш PI в сеть с поддержкой IPv4 и действительное имя хоста localhost? – ralight

+0

Ну, я получаю действительный IP-адрес. Также клиент Python Mosquitto работает хорошо. – cogitoergosum

+0

Действительно ли работает ping localhost' на PI? Mosquitto Python устарел. – ralight

ответ

0

Похоже, что сеть (sock) настроена неправильно. Испытывали ли вы свою сеть малины?

Проверьте, что вы получите ответы от: ping 8.8.8.8

Test днса с: 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() 

пинг локальный потерпит неудачу (или будет свистеть некоторые хозяин на интернет, localhost.home.net;) Оказывается, я 127.0.0.1 localhost закомментирована в /etc/hosts:

#127.0.0.1 localhost 

Как только я удалил хэш, он начал работать нормально.

 Смежные вопросы

  • Нет связанных вопросов^_^