ImportError: Нет модуля с именем mqtt.client Ошибка [paho-mqtt]

Я пытаюсь использовать 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 появляется как часть установленных пакетов.

Может у кого-то уже была такая проблема и решил ее?

Спасибо.


person Naff16    schedule 09.05.2019    source источник
comment
что выводит pip freeze | grep paho ?   -  person al76    schedule 10.05.2019
comment
Это paho-mqtt==1.4.0   -  person Naff16    schedule 10.05.2019
comment
Ваш скрипт python отлично работает для меня из cmdline. Я подозреваю, что у вас есть проблема с путем с pycharm. Эта ссылка может помочь stackoverflow.com /вопросы/19885821/   -  person al76    schedule 10.05.2019
comment
Мне нужно проверить путь в pycharm. Но вчера я попытался запустить скрипт из командной строки как: python script.py, и это дало мне ту же ошибку, что и pycharm.   -  person Naff16    schedule 10.05.2019


Ответы (3)


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

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

pip установить 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

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

person Naff16    schedule 10.05.2019

наверное причина в этом

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

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

person Roshan Bagdiya    schedule 10.05.2019

Глядя на ответ Наффа и Рошана, в моем случае пакет был установлен в Anaconda версии python 3.7 в этом месте.

  • /home/user/anaconda3/lib/python3.7/site-packages/paho

Я использовал этот скрипт:

  • sudo cp -r /home/user/anaconda3/lib/python3.7/site-packages/paho /home/user/.local/lib/python3.7/site-packages/

это решило мою проблему, я надеюсь, что это поможет кому-то.

person Shaukat hussain    schedule 15.03.2020