云计算百科
云计算领域专业知识百科平台

YOL在命令行运行代码出现:训练脚本时出现ModuleNotFoundError: No module named ‘ultralytics‘,问题,怎么解决

你在命令行运行多卡 DDP 训练脚本时出现ModuleNotFoundError: No module named \’ultralytics\’,但 PyCharm 中运行正常,核心原因是命令行的 Python 模块搜索路径(sys.path)未包含项目根目录,而 PyCharm 会自动添加 —— 导致 DDP 启动的子进程无法找到你本地的ultralytics模块(非 conda 全局安装,而是在/home/amax/zdm/QS_COMO_MODIFY下的本地版本)。

一、核心原因拆解

  • PyCharm vs 命令行的路径差异:

    • PyCharm 会自动把项目根目录(/home/amax/zdm/QS_COMO_MODIFY)加入 Python 的sys.path,因此能找到本地的ultralytics;
    • 命令行默认仅搜索 conda 环境的全局包路径(如/home/amax/.conda/envs/groupmamba/lib/python3.8/site-packages),找不到你项目下的ultralytics;
    • DDP 启动子进程时,子进程的sys.path继承自命令行,而非主进程,因此触发模块找不到的错误。
  • 次要风险(提前规避):你设置的batch=256在 4 卡 4090 上可能触发显存溢出(单卡 batch=64,4 卡总 batch=256 理论可行,但多模态模块会增加显存占用),建议后续验证。

  • 二、分步骤解决方案(从快速到永久)

    方案 1:临时解决(命令行运行时添加路径)

    在运行train.py前,先执行ex

    赞(0)
    未经允许不得转载:网硕互联帮助中心 » YOL在命令行运行代码出现:训练脚本时出现ModuleNotFoundError: No module named ‘ultralytics‘,问题,怎么解决
    分享到: 更多 (0)

    评论 抢沙发

    评论前必须登录!