bilibili-api
bilibili-api copied to clipboard
【漏洞】正常运行但是在结束时会报错
Python 版本: 3.10.1(服务器上是3.8)
模块版本: 9.1.0
运行环境: Linux
模块路径: bilibili_api.user
报错信息:
Exception ignored in atexit callback: <function __clean at 0x7f6556dec550>
Traceback (most recent call last):
File "/home/riko/.local/lib/python3.10/site-packages/bilibili_api/utils/network.py", line 26, in __clean
loop = asyncio.get_event_loop()
File "/usr/lib/python3.10/asyncio/events.py", line 656, in get_event_loop
raise RuntimeError('There is no current event loop in thread %r.'
RuntimeError: There is no current event loop in thread 'MainThread'.
Unclosed client session
client_session: <aiohttp.client.ClientSession object at 0x7f6556e09c00>
报错代码:
idlist= ['672342685']
async def get_bili(uid,dynamics):
data=[]
u = user.User(int(uid))
offset = 0
page = await u.get_dynamics(offset)
async def main():
tasks = []
dynamics = {}
for uid in idlist:
tasks.append(get_bili(uid,dynamics))
await asyncio.gather(*tasks)
if __name__ == '__main__':
asyncio.run(main())
exit()
在服务器和本地测试均出现相同问题,虽然代码能正常运行但是在结束的时候会弹出这个报错信息。退回bilibili-api版本到9.0.1不再复现。
我也遇到此問題,改成下列程式即可
loop = asyncio.new_event_loop()
loop.run_until_complete(main())
我也遇到此問題,改成下列程式即可
loop = asyncio.new_event_loop() loop.run_until_complete(main())
我也有这个问题
这样是没问题的 但asyncio官方文章中建议应用开发者不使用asyncio.new_event_loop()
这种低层级api
应该是程序退出时清理aiohttp实例的时候主循环已经退出了
这个问题暂时不太好解决,如果代码能正常运行忽略即可
我也遇到此問題,改成下列程式即可
loop = asyncio.new_event_loop() loop.run_until_complete(main())
Error in atexit._run_exitfuncs:
Traceback (most recent call last):
File "/home/ubuntu/.local/lib/python3.8/site-packages/bilibili_api/utils/network.py", line 26, in __clean
loop = asyncio.get_event_loop()
File "/usr/lib/python3.8/asyncio/events.py", line 639, in get_event_loop
raise RuntimeError('There is no current event loop in thread %r.'
RuntimeError: There is no current event loop in thread 'MainThread'.