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 的测试模式。
相关推荐
xxie1237946 小时前
return与print
开发语言·python
秋96 小时前
从 Python 后端工程师转型 AI Engineer(AI 工程化)的完整补课清单(2026实战版)
开发语言·人工智能·python
啦啦啦_99996 小时前
5. 迁移学习
人工智能·机器学习·迁移学习
A.说学逗唱的Coke6 小时前
【AI·Coding】TDD × SDD × AI Coding:从“测试驱动“到“规范驱动“的智能协作实践
人工智能·驱动开发·tdd
云烟成雨TD6 小时前
Spring AI Alibaba 1.x 系列【78】沙箱(Sandbox)
java·人工智能·spring
程序员二叉6 小时前
【Java】 异常高频面试题精讲 | 易错点+对比总结
java·开发语言·面试
tq10867 小时前
基于SLIP的防幻觉的指南
人工智能
慕木沐7 小时前
Google ADK Java 1.0版本 核心机制与实战 Demo
java·开发语言·python
Tbisnic7 小时前
AI大模型学习第十一天:技术选型、安全防护与金融实战
python·学习·ai·大模型·提示词工程
Roann_seo%7 小时前
C++文件操作完全指南:从文本读写到二进制文件处理
开发语言·c++