PyCharm 运行 Python 脚本总自动进 Test 模式?附 RT-DETRv2 依赖缺失终极排坑

🚀 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.pyfrom 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:修改运行配置(推荐,一键切换)
  1. 点击 PyCharm 右上角的运行配置下拉框,选择 Edit Configurations

  2. 在左侧列表中,删除所有带测试图标的配置 (图标是绿色的"双勾")

  3. 点击左上角的 + → 选择 Python,新建一个普通运行配置:

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

方法 2:禁用默认测试运行器(终极根治)
  1. 打开 PyCharm 设置:File → Settings → Tools → Python Integrated Tools
  2. 找到 Testing 模块,把 Default test runner 改成 < No runner >
  3. 点击 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

🎉🎉🎉 数据读取成功!配置完全正常!

五、避坑总结

  1. 优先改运行配置:这是解决 PyCharm 自动进测试模式最直接的方法,比修改全局设置更灵活。
  2. 依赖问题别忽略faster_coco_eval 是 RT-DETRv2 的强依赖,安装后不仅能解决导入报错,后续模型训练的评估环节也会用到。
  3. 临时方案 :如果赶时间,直接在终端运行 python 你的脚本.py,永远不会触发 PyCharm 的测试模式。
相关推荐
大熊背1 小时前
Binning模式下和Normal模式下加权平均亮度差异分析以及优化
人工智能·算法·自动曝光
kcuwu.1 小时前
NLP入门技术博客
人工智能·自然语言处理
思茂信息1 小时前
CST案例:可调谐全硅手性超表面在太赫兹频段
网络·人工智能·算法·重构·cst·电磁仿真
再写一行代码就下班1 小时前
根据给定word模板,动态填充指定内容,并输出为新的word文档。(${aa}占位符方式且支持循环动态表格)
java·开发语言
星幻元宇VR1 小时前
VR禁毒骑行系统|以沉浸式体验提升禁毒宣传教育效果
人工智能·科技·学习·安全·vr·虚拟现实
进击切图仔1 小时前
RTC(Real-time chunking)与 Temporal Ensemble
人工智能·实时音视频
七夜zippoe1 小时前
DolphinDB流数据表:创建与订阅
开发语言·订阅··dolphindb·数据表
程序员码歌1 小时前
我是怎么部署开源 AI 编程助手 OpenCode,并在两个真实场景使用起来的
前端·人工智能·后端
00后程序员张1 小时前
Windows 下怎么生成 AppStoreInfo.plist?不依赖 Xcode 的方法
ide·macos·ios·小程序·uni-app·iphone·xcode