Python3.6属性错误:模块'异步没有属性'运行' [英] Python3.6 AttributeError: module 'asyncio' has no attribute 'run'

查看:40
本文介绍了Python3.6属性错误:模块'异步没有属性'运行'的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我尝试阅读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'>

推荐答案

asyncio.run是对Python3.7的添加。在3.5-3.6中,您的示例大致相当于:

import asyncio

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

这篇关于Python3.6属性错误:模块&#39;异步没有属性&#39;运行&#39;的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆