Python3.6 AttributeError:模块“ asyncio”没有属性“运行”

发布于 2021-01-29 17:49:25

我试图阅读https://hackernoon.com/asynchronous-
python-45df84b82434
。这是关于异步python的,我从中尝试了代码,但出现了一个奇怪的错误。代码是:

import asyncio
import aiohttp

urls = ['http://www.google.com', 'http://www.yandex.ru', 'http://www.python.org']

async def call_url(url):
    print('Starting {}'.format(url))
    response = await aiohttp.ClientSession().get(url)
    data = await response.text()
    print('{}: {} bytes: {}'.format(url, len(data), data))
    return data

futures = [call_url(url) for url in urls]

asyncio.run(asyncio.wait(futures))

当我尝试运行时说:

Traceback (most recent call last):
  File "test.py", line 15, in <module>
    asyncio.run(asyncio.wait(futures))
AttributeError: module 'asyncio' has no attribute 'run'
sys:1: RuntimeWarning: coroutine 'call_url' was never awaited

我没有任何名为ayncio的文件,并且有证明:

>>> asyncio
<module 'asyncio' from '/usr/lib/python3.6/asyncio/__init__.py'>
关注者
0
被浏览
166
1 个回答
  • 面试哥
    面试哥 2021-01-29
    为面试而生,有面试问题,就找面试哥。

    asyncio.run是Python 3.7的新增功能。在3.5-3.6中,您的示例大致等效于:

    import asyncio
    
    futures = [...]
    loop = asyncio.get_event_loop()
    loop.run_until_complete(asyncio.wait(futures))
    


知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看