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 的测试模式。
相关推荐
用户83562907805137 分钟前
Python 实现 PDF 文件加密与解密方法
后端·python
用户83562907805141 分钟前
使用 Python 冻结与拆分 Excel 窗格教程
后端·python
阿里云大数据AI技术1 小时前
构建高转化海外电商搜索:阿里云OpenSearch行业算法版的全链路智能优化策略实战
人工智能·搜索引擎
Awu12272 小时前
⚡从零开发 Agent CLI(五)实现一个可治理、可扩展的工具系统
前端·人工智能·claude
字节跳动视频云技术团队2 小时前
让 Agent 成为音视频工作台:AI MediaKit CLI + Skill 发布
人工智能·音视频开发
魏祖潇2 小时前
framework 整合实战——DDD/TDD/SDD 三件套在 framework 仓的真实落地
人工智能·后端
Token炼金师2 小时前
去噪扩散:从随机噪声到高保真图像的数学之路
人工智能·aigc
这个DBA有点耶2 小时前
AI写的SQL跑崩了生产库,这锅谁背?
数据库·人工智能·程序员
阿里云大数据AI技术3 小时前
阿里云 EMR AI 助手正式发布:从问答工具到全栈智能运维助手
运维·人工智能
Larcher4 小时前
从零搭建 MCP 服务——让 AI 拥有无限扩展能力
人工智能·程序员