使用asyncio async和await运行python应用程序

时间:2018-04-13 16:18:41

标签: asynchronous python-3.5 python-asyncio

我正在尝试使用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

我理解这个错误告诉我的是什么,但是我很困惑我应该等待调用该函数来运行我的程序。

1 个答案:

答案 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()