- Published on
🐍 PyCharm 在调试 Pytest 函数时报错 '_UnixSelectorEventLoop' object has no attribute '_compute_internal_coro'
- Authors
- Name
- 阿森 Hansen
环境
- PyCharm 2023.3.3
- MacOS Sonoma 14.2.1
- pytest 7.2.1
- pytest-asyncio 0.23.4
问题
在使用 Pycharm 调试 Pytest 测试用例时,如果使用了异步方法 asyncio 协程,报错:
错误信息:
AttributeError: '_UnixSelectorEventLoop' object has no attribute '_compute_internal_coro'
但是如果直接运行,则不会报错……很奇怪
解决方法
问题是 PyCharm IDE 在调试时会覆盖一部分内置方法,其中就包括了获取 EventLoop 对象的方法。
只要在 IDE 中关闭对 asyncio 的覆盖即可:
- 帮助 -> 查找操作 -> 注册表
- ctrl+f 搜索
python.debug.asyncio.repl
取消勾选 - 点击“关闭”,重启 PyCharm
参考
This work is licensed under Creative Commons Attribution-NonCommercial 4.0 International