未关闭的客户端会话警告来源不明

gmo*_*lau 1 python-asyncio aiohttp

我正在使用基于 aiohttp 的第三方 API 客户端库。该库没有将其客户端实现为上下文管理器,但只要我始终aiohttp.ClientSession手动关闭(对吗?),这应该没有问题。

问题是,即使在仔细执行此操作之后,我仍然收到警告,Unclosed client session但没有任何信息来自它的来源。我正在使用 捕获警告回溯pytest -W error::ResourceWarning,但结果很简单

.Exception ignored in: <bound method ClientSession.__del__ of <aiohttp.client.ClientSession object at 0x10fc15ba8>>
Traceback (most recent call last):
  File "<PROJECT>/venv/lib/python3.6/site-packages/aiohttp/client.py", line 211, in __del__
    **kwargs)
ResourceWarning: Unclosed client session <aiohttp.client.ClientSession object at 0x10fc15ba8>
Run Code Online (Sandbox Code Playgroud)

即单帧的回溯。

有人可以告诉我我在这里做错了什么以及如何获得有关该警告的更多信息吗?

And*_*lov 5

在调试模式下运行您的代码。

设置PYTHONASYNCIODEBUG=1环境变量以查看扩展信息。

特别是,aiohttp 记录了用于创建未关闭ClientSession对象的行的回溯。