我正在尝试使用asyncio和关键字等待/ async与python 3.5 我对python中的异步编程相当新。我对它的大部分经验都是使用NodeJS。我似乎正在做正确的事情,除了调用我的启动函数来启动程序。
下面是一些虚构的代码,可以解决我的困惑,因为我的代码库相当大,包含几个本地模块。
import asyncio
async def get_data():
foo = await <retrieve some data>
return foo
async def run():
await get_data()
run()
但我接受了这个asyncio异常:
runtimeWarning: coroutine 'run' was never awaited
我理解这个错误告诉我的是什么,但是我很困惑我应该等待调用该函数来运行我的程序。
答案 0 :(得分:3)
您应该手动创建事件循环并在其中运行协同程序,如documentation所示:
import asyncio
async def hello_world():
print("Hello World!")
loop = asyncio.get_event_loop()
loop.run_until_complete(hello_world())
loop.close()