🚀 PyCharm 运行 Python 脚本总自动进 Test 模式?附 RT-DETRv2 依赖缺失终极排坑
大家好,我是一名工业视觉算法工程师,最近在 Windows 上部署 RT-DETRv2 模型时,踩了两个非常典型的坑:PyCharm 误把普通脚本当成单元测试运行 ,以及 faster_coco_eval 依赖缺失导致的报错。本文把这两个问题的解决方法一次性讲透,帮你彻底告别调试烦恼!
一、问题现象

1. PyCharm 自动进入 Test 模式
点击运行脚本后,PyCharm 直接弹出"测试结果"面板,显示"2 个测试已失败",根本不会执行你写的业务代码。
2. 同时触发依赖缺失报错
在测试模式下,控制台直接抛出:
python
ModuleNotFoundError: No module named 'faster_coco_eval'
报错指向 coco_dataset.py 的 from faster_coco_eval.utils.pytorch import FasterCocoDetection 这一行,导致脚本直接终止。
二、问题根源分析
1. PyCharm 为什么会自动进 Test 模式?
PyCharm 有个自动检测机制,当你的脚本路径、文件名(比如包含 test 字样)或结构符合单元测试的特征时,会默认以 unittest/pytest 模式运行,而不是普通 Python 脚本。
2. faster_coco_eval 是什么?
它是一个高性能的 COCO 评估工具,RT-DETRv2 官方代码中,coco_dataset.py 直接依赖它导入评估类。如果没安装这个包,代码一导入就会报错,而 PyCharm 的测试模式会放大这个问题,让你误以为是脚本逻辑的问题。
三、分步解决:先根治 Test 模式,再修复依赖
步骤 1:彻底关闭 PyCharm 自动测试(永久生效)
方法 1:修改运行配置(推荐,一键切换)
-
点击 PyCharm 右上角的运行配置下拉框,选择 Edit Configurations
-
在左侧列表中,删除所有带测试图标的配置 (图标是绿色的"双勾")

-
点击左上角的
+→ 选择 Python,新建一个普通运行配置:Script path:选择你的 Python 脚本(比如tools/load_test.py)Parameters:输入你的命令参数(比如-c configs/rtdetrv2/xxx.yml)Python interpreter:选择你的虚拟环境(比如rtdetr)
-
点击
Apply保存,以后运行就会默认用这个配置,不会再进测试模式了。

方法 2:禁用默认测试运行器(终极根治)
- 打开 PyCharm 设置:
File → Settings → Tools → Python Integrated Tools - 找到
Testing模块,把Default test runner改成< No runner > - 点击
OK保存,重启 PyCharm 后,它就不会再自动识别测试文件了。

步骤 2:安装 faster_coco_eval 依赖,解决导入报错
在你的虚拟环境终端中,直接运行安装命令:
bash
pip install faster-coco-eval
注意:这个包依赖 C++ 编译环境,如果安装失败,可以先安装
Microsoft Visual C++ Build Tools再重试。
四、验证效果
完成以上两步后,重新运行你的脚本,会看到正常的 Python 执行日志,而不是测试面板,依赖导入报错也会消失:
Not init distributed mode.
============================================================
测试数据集加载(RT-DETRv2 官方专用)
============================================================
✅ 成功加载 train_dataloader
📦 第 1 个 batch:
- 图片 shape: torch.Size([4, 3, 640, 640])
- 标注 bboxes: 4
- 标注 labels: 4
🎉🎉🎉 数据读取成功!配置完全正常!
五、避坑总结
- 优先改运行配置:这是解决 PyCharm 自动进测试模式最直接的方法,比修改全局设置更灵活。
- 依赖问题别忽略 :
faster_coco_eval是 RT-DETRv2 的强依赖,安装后不仅能解决导入报错,后续模型训练的评估环节也会用到。 - 临时方案 :如果赶时间,直接在终端运行
python 你的脚本.py,永远不会触发 PyCharm 的测试模式。