Python 3.x 使用Kivy和Socket.io运行Trio时出现问题
目前,我正在尝试运行Kivy,Socket.io作为Trio的协同程序。看来Kivy UI显示了空白屏幕,似乎没有反应。早些时候,Kivy正在与Trio合作,socket.io添加后,Trio变得没有反应。提供了相同的示例代码Python 3.x 使用Kivy和Socket.io运行Trio时出现问题,python-3.x,kivy,python-socketio,python-trio,Python 3.x,Kivy,Python Socketio,Python Trio,目前,我正在尝试运行Kivy,Socket.io作为Trio的协同程序。看来Kivy UI显示了空白屏幕,似乎没有反应。早些时候,Kivy正在与Trio合作,socket.io添加后,Trio变得没有反应。提供了相同的示例代码 async with trio.open_nursery() as nursery: nursery.start_soon(kivy_sample_app) nursery.start_soon(websocket_client.connect)
async with trio.open_nursery() as nursery:
nursery.start_soon(kivy_sample_app)
nursery.start_soon(websocket_client.connect)
nursery.start_soon(command_line.run)
乍一看,
pythonsocketio
是一个异步IO库。它与trio不兼容,因为它使用了asyncio
函数
不幸的是,您不能只使用trio
中的asyncio
编写的库。两者都是async
python库,但它们使用不同的不兼容事件循环
你的选择是:
trio
的socketio实现:
- 查找基于
的socketio库-我不知道有任何实现trio
- 将python socketio移植到
或从头开始编写一个新的实现-您可以在这里使用trio
来创建一个同时与anyio
和trio
兼容的库asyncio
- 在
上运行trio
(asyncio
)trio asyncio
- 在
之上运行asyncio
(trio
)trio.lowlevel.start\u guest\u run
乍一看,
pythonsocketio
是一个异步IO库。它与trio不兼容,因为它使用了asyncio
函数
不幸的是,您不能只使用trio
中的asyncio
编写的库。两者都是async
python库,但它们使用不同的不兼容事件循环
你的选择是:
trio
的socketio实现:
- 查找基于
的socketio库-我不知道有任何实现trio
- 将python socketio移植到
或从头开始编写一个新的实现-您可以在这里使用trio
来创建一个同时与anyio
和trio
兼容的库asyncio
- 在
上运行trio
(asyncio
)trio asyncio
- 在
之上运行asyncio
(trio
)trio.lowlevel.start\u guest\u run
您使用的socket.io库是什么?一般来说,当从trio应用程序执行任何类型的io时,您需要一个为异步使用而设计并与trio一起使用的库,如trio-websocket.@NathanielJ.Smith我正在使用这个库:socket.io使用的库是什么?一般来说,当从trio应用程序执行任何类型的io时,您需要一个专为异步使用而设计并与trio一起使用的库,如trio-websocket.@NathanielJ.Smith我正在使用此库:我已经在使用trio asyncio,但我没有接收广播事件,我能够发出事件,但服务器发出的事件未接收到python socketio asyncclientI我已经在使用trio asyncio,但我没有接收到广播事件,我能够发出事件,但服务器发出的事件未接收到python socketio asyncclient