学习教程时,Asyncio模块不适用于Python 3.8

学习教程时,Asyncio模块不适用于Python 3.8,python,python-asyncio,Python,Python Asyncio,源代码: import asyncio import time async def mycoro(number): start = time.time() print(f'Starting {number}') await asyncio.sleep(1) print(f'Finishing {number}') end = time.time() print(end - start) return str(number) many =

源代码:

import asyncio
import time

async def mycoro(number):
    start = time.time()
    print(f'Starting {number}')
    await asyncio.sleep(1)
    print(f'Finishing {number}')
    end = time.time()
    print(end - start)
    return str(number)

many = asyncio.gather(
    mycoro(1),
    mycoro(2),
    mycoro(3)
)

asyncio.run(many)
完全错误:

Traceback (most recent call last):
  File "c:/Users/JasonTorrez/Desktop/Asyncio/test.py", line 19, in <module>
    asyncio.run(many)
  File "C:\Users\JasonTorrez\AppData\Local\Programs\Python\Python38-32\lib\asyncio\runners.py", line 37, in run
    raise ValueError("a coroutine was expected, got {!r}".format(main))
ValueError: a coroutine was expected, got <_GatheringFuture pending>
回溯(最近一次呼叫最后一次):
文件“c:/Users/jasontorez/Desktop/Asyncio/test.py”,第19行,在
asyncio.run(多个)
文件“C:\Users\jasontorez\AppData\Local\Programs\Python\Python38-32\lib\asyncio\runners.py”,第37行,正在运行
raise VALUERROR(“应为协同程序,获取{!r}”)。格式(主))
ValueError:应为协同程序,获取
我不知道为什么它不起作用。我试过很多视频,但没有任何效果。

迪恩先生是对的


您可以从链接中找到moe信息

导入异步IO
导入时间
异步def mycoro(编号):
开始=时间。时间()
打印(f'开始{number}')
等待asyncio.sleep(1)
打印(f'Finishing{number}')
end=time.time()
打印(结束-开始)
返回str(编号)
async def call_async():
等待asyncio.gather(
麦可罗(1),
麦可罗(2),
麦可罗(3)
)
运行(调用异步()
开始1
开始2
开始3
整理1
1.0044970512390137
整理2
1.0045382976531982
整理3
1.004551887512207
迪恩先生是对的


您可以从链接中找到moe信息

导入异步IO
导入时间
异步def mycoro(编号):
开始=时间。时间()
打印(f'开始{number}')
等待asyncio.sleep(1)
打印(f'Finishing{number}')
end=time.time()
打印(结束-开始)
返回str(编号)
async def call_async():
等待asyncio.gather(
麦可罗(1),
麦可罗(2),
麦可罗(3)
)
运行(调用异步()
开始1
开始2
开始3
整理1
1.0044970512390137
整理2
1.0045382976531982
整理3
1.004551887512207

您不能将
聚集
直接传递到
异步IO.run
。您需要将其包装为一个协程,例如等待
聚集的
async def main
。您不能将
聚集
直接传递到
asyncio.run
。您需要将其包装为一个协同程序,例如等待收集的
异步def main