#python #micropython
#python #micropython
Вопрос:
Я пишу набор функций для моего esp8266 (под управлением micropython) для отправки данных на сервер через urequests
, но не могу импортировать функции в мой main.py . Я успешно создал модули для других задач и импортировал их, но когда у меня есть это в netclient.py
import urequests
def postData(data_dict, url="http://192.168.1.1:9000/weather_station"):
try:
response = urequests.post(url,
headers = {'Connection': 'Close', 'content-type': 'application/json'},
json = data_dict)
except OSError as e:
print("Error sending packet: {} n retrying...".format(e))
try:
response = urequests.post(url,
headers={'Connection': 'Close', 'content-type': 'application/json'},
json = data_dict)
except OSError as e:
print("Error sending packet: {} n retry failed".format(e))
response = False
return response
Затем, когда я попробую это из webrepl
import netclient
netclient.postData()
Я получаю
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
AttributeError: 'module' object has no attribute 'postData'
Когда я проверяю netclient
, его единственными атрибутами являются __class__
и __name__
Где я ошибаюсь?
Файловая система выглядит следующим образом
import os
os.listdir()
['boot.py', 'credentials.json', 'netclient.py', 'lib', 'main.py', 'sensors.py', 'webrepl_cfg.py', 'wifi.py']
Комментарии:
1. выполняется
netclient
импортweb_repl
? Можете ли вы предоставить полную структуру каталогов? Корень случайно не названnetclient
?2. Я добавил
import webrepl
в netclient, но это ничего не изменило. То, что я перечислил, — это корневая файловая система, это простой микроконтроллер3. Назван ли корневой каталог
netclient
? Если это так, то вы должны попробовать что-то вродеfrom netclient import netclient
, а затем использоватьnetclient.postData()
4. @pgcudahy пожалуйста, действительно попытайтесь ответить на мои вопросы. Я не предлагал вам импортировать
netclient
вweb_repl
, я спрашивал вас , потому что циклический импорт может вызвать это. Кроме того, пожалуйста, предоставьте полную структуру с фактическим именем каталога. Не заставляйте нас гадать. Не имеет значения, является ли это мелким. Нам нужен способ фактически воспроизвести это, и того, что вы предоставили, недостаточно.5. Извините, если я выражаюсь непонятно, но это корневой каталог, в нем нет имени каталога или дополнительной структуры. docs.micropython.org/en/v1.9.1/esp8266/esp8266/tutorial /… . Также, чтобы было ясно, я включил весь код netclient.py в моем вопросе. Он ничего не импортирует, кроме
urequests