在python中,当出现“RuntimeError: still has pending operation at deallocation, the process may crash”错误时,通常表示在程序退出时,仍有为完成的异步任务或事件未被处理完毕,导致程序异常退出。
在asyncio中,如果没有正确处理未完成的异步任务,可能会导致事件循环中仍有挂起的任务,从而触发这个错误。
在Windows系统上,由于默认的事件循环策略'SelectorEventLoopPolicy'使用的是select()系统调用,可能会导致事件循环未能正常清理。
我的解决方法是在程序中加两句:
import asyncio
asyncio.set_event_loop_policy(asyncio.WindowsSelectorEventLoopPolicy())