你在命令行运行多卡 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
网硕互联帮助中心




评论前必须登录!
注册