Мой сценарий работает правильно и может подключаться к центральному IOT при запуске на хосте RaspberryPi, Python3.7, а также с моего ноутбука Windows10. Однако возникает InvalidURL (f "URL не может содержать управляющие символы. Ошибка {url! R} при запуске в контейнере, созданном с python: 3.7-buster.
Я пробовал различные образы Python Dockerно получил ту же ошибку.
import iotc
from iotc import IOTConnectType, IOTLogLevel
from random import randint
import settings, client
import json, time
# settings_fp = r"config.json"
settings_fp = '/var/lib/project/config.json'
with open(settings_fp, 'r') as settings_file:
settings = json.load(settings_file)
scopeId = settings['cloud']['scope_id']
deviceId = settings['cloud']['device_id']
deviceKey = settings['cloud']['primary_key']
iotc = iotc.Device(scopeId, deviceKey, deviceId, IOTConnectType.IOTC_CONNECT_SYMM_KEY)
iotc.setLogLevel(IOTLogLevel.IOTC_LOGGING_API_ONLY)
gCanSend = False
gCounter = 0
def onconnect(info):
global gCanSend
print("- [onconnect] => status:" + str(info.getStatusCode()))
if info.getStatusCode() == 0:
if iotc.isConnected():
gCanSend = True
print("Connected to the cloud!!!")
def onmessagesent(info):
print("\t- [onmessagesent] => " + str(info.getPayload()))
def oncommand(info):
print("- [oncommand] => " + info.getTag() + " => " + str(info.getPayload()))
def onsettingsupdated(info):
print("- [onsettingsupdated] => " + info.getTag() + " => " + info.getPayload())
iotc.on("ConnectionStatus", onconnect)
iotc.on("MessageSent", onmessagesent)
iotc.on("Command", oncommand)
iotc.on("SettingsUpdated", onsettingsupdated)
iotc.connect() # code fails here
Я ожидаю нормального подключения к центральному IOT, но вместо этого получаю
InvalidURL (f "URL не может содержать управляющие символы. {url! r} "