Ошибка импорта: нет модуля с именем mqtt.client Ошибка [paho-mqtt] - PullRequest
0 голосов
/ 10 мая 2019

Я пытаюсь использовать paho-mqtt в проекте Python, я использую Pycharm в качестве моей IDE.Я установил paho-mqtt с помощью: pip install paho-mqtt , но, похоже, что-то не так.Потому что при развертывании следующего скрипта:

import paho.mqtt.client as mqtt

# The callback for when the client receives a CONNACK response from the server.
def on_connect(client, userdata, flags, rc):
    print("Connected with result code "+str(rc))

    # Subscribing in on_connect() means that if we lose the connection and
    # reconnect then subscriptions will be renewed.
    client.subscribe("/test")


# The callback for when a PUBLISH message is received from the server.
def on_message(client, userdata, msg):
    print(msg.topic+" "+str(msg.payload))

client = mqtt.Client()
client.on_connect = on_connect
client.on_message = on_message

client.connect("localhost", 1883, 60)

# Blocking call that processes network traffic, dispatches callbacks and
# handles reconnecting.
# Other loop*() functions are available that give a threaded interface and a
# manual interface.
client.loop_forever()

выдает мне следующую ошибку:

/usr/bin/python2.7 /home/user/PycharmProjects/untitled/MQTT/paho.py
Traceback (most recent call last):
  File "/home/user/PycharmProjects/untitled/MQTT/paho.py", line 1, in <module>
    import paho.mqtt.client as mqtt
  File "/home/user/PycharmProjects/untitled/MQTT/paho.py", line 1, in <module>
    import paho.mqtt.client as mqtt
ImportError: No module named mqtt.client

Process finished with exit code 1

И paho-mqtt выводит меня как часть установленных пакетов.

Кто-то уже имел эту проблему и получил ее решить?

Спасибо.

Ответы [ 2 ]

1 голос
/ 10 мая 2019

Я решил проблему, используя следующую проблему в качестве примера: https://github.com/shivasiddharth/GassistPi/issues/725

  1. Установил paho-mqtt используя:

pip install paho-mqtt

  1. В каталоге script.py я выполнил следующие команды:

    • ln -s /home/user/.local/lib/python2.7/site-packages/paho paho
    • ln -s /home/user/.local/lib/python2.7/site-packages/paho_mqtt-1.4.0.dist-info paho_mqtt-1.4.0.dist-info

Возможно, это неправильный способ решения проблемы, но больше ничего не помогло.

0 голосов
/ 10 мая 2019

Вероятно, причина этого

библиотека "paho" была установлена ​​(по умолчанию) в папку "/home/user/.local/lib/python2.7/site-packages" но «python» ищет эту библиотеку в папке «/usr/local/lib/python2.7/dist-packages». разницу между пакетами dist и site можно найти по здесь .

Команда ln используется для создания ссылок между файлами. Таким образом, файл получает ссылку из каталога script.py.

...