如何重写代码以修复错误(RuntimeError:此事件循环已在运行.)websockets+asyncio



我有执行在线识别的代码。目前,它在最后一行给出了一个错误"RuntimeError:This event loop are ready running"。Anaconda 2019.10,Python 3.7.4

# websockets
async def recognize(url, data):
async with websockets.connect(url) as websocket:
await websocket.send(data)
recognized_text = ""
recognized_text = await websocket.recv()
#print(f"< {recognized_text}")
#print(recognized_text)
return recognized_text
in_file = open(filename1, "rb")
data = in_file.read()
in_file.close()
print(asyncio.get_event_loop().run_until_complete(recognize(url, data)))

这里建立了一个会话,然后需要传输用于处理和接收识别文本的数据。我可以大致想象一个websocket在做什么。建立与服务器的连接,发送数据,然后等待响应。我不明白异步是怎么工作的。我读到(问题/53248431(,现在这不起作用,因为我有一个版本>=5.0的龙卷风,他们建议降低版本,但我不想。如何正确重写?请解释它是如何工作的(

您收到错误是因为您的上述程序/事件仍在运行,因为它没有被终止。

因此,在终端中键入以下命令:

pkill -9 python 

然后重新启动程序。

(这仅适用于Linux系统(

最新更新