程序问答   发布时间:2022-06-02  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了在python 3.8中使用aiohttp和asyncio关闭异常事件循环大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

如何解决在python 3.8中使用aiohttp和asyncio关闭异常事件循环?

开发过程中遇到在python 3.8中使用aiohttp和asyncio关闭异常事件循环的问题如何解决?下面主要结合日常开发的经验,给出你关于在python 3.8中使用aiohttp和asyncio关闭异常事件循环的解决方法建议,希望对你解决在python 3.8中使用aiohttp和asyncio关闭异常事件循环有所启发或帮助;

我认为这很可能是aiohttp错误。具体来说,我在他们的github上发现了这个问题:https : //github.com/aio- libs/aiohttp/issues/4324

我意识到这不一定对您有帮助,但是也许您可以转回去并停止将头撞在墙上。您的代码很好!

解决方法

我正在使用asyncio和aiohttp发出并发请求。我最近将Python升级到3.8.0版RuntimeError: Event loop is closed,程序运行后得到提示。

import asyncio
import aiohttp

async def do_call(name,session):
    async with session.get('https://www.google.be') as response:
        await response.text()
        return 'ok - {}'.format(Name)

async def main():
    async with aiohttp.ClientSession() as session:
        tasks = [do_call(str(i),session) for i in range(0,4)]
        results = await asyncio.gather(*tasks)
        print(results)

asyncio.run(main())

我确实从asyncio.gather()获得了有效的结果,但是退出时会引发异常。我想更改代码,以免发生异常。

追溯如下:

Exception ignored in: <function _ProactorBasePipeTransport.__del__ at 0x000001E9A92079D0>
TraceBACk (most recent call last):
  File "C:\Users\Jonas\ApPDAta\Local\Programs\Python\Python38\lib\asyncio\proactor_events.py",line 116,in __del__
    self.close()
  File "C:\Users\Jonas\ApPDAta\Local\Programs\Python\Python38\lib\asyncio\proactor_events.py",line 108,in close
    self._loop.call_soon(self._call_connection_lost,NonE)
  File "C:\Users\Jonas\ApPDAta\Local\Programs\Python\Python38\lib\asyncio\base_events.py",line 711,in call_soon
    self._check_closed()
  File "C:\Users\Jonas\ApPDAta\Local\Programs\Python\Python38\lib\asyncio\base_events.py",line 504,in _check_closed
    raise RuntimeError('Event loop is closed')
RuntimeError: Event loop is closed`

大佬总结

以上是大佬教程为你收集整理的在python 3.8中使用aiohttp和asyncio关闭异常事件循环全部内容,希望文章能够帮你解决在python 3.8中使用aiohttp和asyncio关闭异常事件循环所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。