Fabian
Fabian

Reputation: 571

ImportError: no module named 'umqtt.MQTTClient' but file with class exists

I installed MicroPython v1.9.3-8 on my ESP8266 board. Here is the beginning of my main.py file:

from machine import Pin

led = Pin(2, Pin.OUT, value=1)

#---MQTT Sending---

from time import sleep_ms
from ubinascii import hexlify
from machine import unique_id
#import socket
from umqtt import MQTTClient

SERVER = "10.6.6.192"
CLIENT_ID = hexlify(unique_id())
TOPIC1 = b"/server/tem"
TOPIC2 = b"/server/hum"
TOPIC3 = b"/server/led"

The line from umqtt import MQTTClient throws an error when I reset the module:

File "main.py", line 11, in < module >

ImportError: no module named 'umqtt.MQTTClient'

Here is my umqtt.py file.

I have the umqtt.py file uploaded to my esp8266 with webrepl. When I run:

import os
os.listdir()

I get this output:

>>> os.listdir()
['boot.py', 'webrepl_cfg.py', 'umqtt.py', 'main.py']

Since in the umqtt.py file in line 8 the class MQTTClient is defined, I do not know what am I doing wrong to get this code to work.

Upvotes: 1

Views: 3435

Answers (1)

Mauricio Pilla
Mauricio Pilla

Reputation: 21

I think you need to either specify the simple or the robust versions:

from umqtt.simple import MQTTClient

Upvotes: 2

Related Questions