解决This event loop is already running问题

有一段协程代码如下,在PyCharm中能够正确运行,在jupyter notebook中确报错RuntimeError: This event loop is already running

import asyncio
import requests

async def request():
    url = 'https://www.baidu.com'
    status = requests.get(url)
    return status
    
def callback(task):
    print('Status:', task.result())
 
coroutine = request()
task = asyncio.ensure_future(coroutine)
print('Task:', task)

loop = asyncio.get_event_loop()
loop.run_until_complete(task)
print('Task:', task)
print('Task Result:', task.result())

解决办法是封装event loop,参考https://pypi.org/project/nest-asyncio/
,具体如下:
1.pip3 install nest_asyncio
2.在协程代码开头,加上如下两行:

import nest_asyncio
nest_asyncio.apply()
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容