You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PyCharm调试FastAPI测试触发_UnixSelectorEventLoop属性错误

问题解决:FastAPI测试在PyCharm DEBUG模式下的AttributeError

错误成因

这是PyCharm调试器与Python asyncio事件循环在MacOS M1(ARM架构)环境下的兼容性问题:

  • PyCharm调试器开启asyncio调试特性时,会尝试访问事件循环的_compute_internal_coro内部属性
  • 但MacOS ARM版本的Python标准库中,_UnixSelectorEventLoop并没有这个属性,调试钩子注入时就会抛出AttributeError
  • 正常运行时没有调试器的额外钩子,因此测试可以正常通过

解决方案

1. 更新PyCharm到最新版本

JetBrains在2023.2及以后的版本中修复了ARM架构下asyncio调试的相关bug,直接升级PyCharm是最彻底的解决方式。

2. 替换asyncio事件循环为uvloop

安装uvloop并在测试代码中指定事件循环策略,绕过标准库事件循环的兼容性问题:
首先安装依赖:

pip install uvloop

然后在测试文件开头添加:

import asyncio
import uvloop

# 强制使用uvloop作为事件循环
asyncio.set_event_loop_policy(uvloop.EventLoopPolicy())

3. 禁用PyCharm的Asyncio调试特性

在PyCharm中操作:

  • 打开「Run/Debug Configurations」
  • 找到对应的测试配置,切换到「Python Debugger」标签页
  • 取消勾选「Asyncio debugging」选项
  • 保存配置后重新启动调试

内容的提问来源于stack exchange,提问作者jossefaz

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.01 00:21:01