Asyncio:任务产量不好?



我的代码在这里总是掉落一个错误消息,无论是谷歌,chatgpt都无法解释:

import asyncio
import udiskie
import udiskie.config
import udiskie.udisks2
async def main():
device = '/dev/mmcblk0p1'
config = udiskie.config.Config.from_file()
udisks = await udiskie.udisks2.Daemon.create()
await udisks.connect()
try:
await udisks.unmount(device)
finally:
await udisks.disconnect()
if __name__ == '__main__':
asyncio.run(main())

运行时:

test.py", line 9, in main
udisks = await udiskie.udisks2.Daemon.create()
File "/usr/lib/python3/dist-packages/udiskie/udisks2.py", line 699, in create
proxy = await dbus.connect_service(*service)
File "/usr/lib/python3/dist-packages/udiskie/dbus.py", line 288, in connect_service
proxy = await proxy_new_for_bus(
File "/usr/lib/python3/dist-packages/udiskie/dbus.py", line 279, in proxy_new_for_bus
result = await future
File "/usr/lib/python3/dist-packages/udiskie/async_.py", line 92, in __await__
return (yield self)
RuntimeError: Task got bad yield: <udiskie.async_.Future object at 0x7fbb12c100>

来自udiskie Github wiki:

一个经常被问到的问题是udiskie是否公开了Python API可以在Python脚本中使用。

由于udiskie的实现方式,目前没有方便的Python API。这主要是因为udiskie是基于自制的异步层。(我也更喜欢Python对于外部人员有用的API,可能会重新考虑)

您尝试使用udiskie的方式是不支持不工作. Udiskie与asyncio不兼容。它使用自己的异步实现。

最新更新