PyTorch DLL 错误修复总结
问题
运行 export.py 时,导入 Ultralytics 失败:
text
OSError: [WinError 1114] DLL 初始化例程失败
Error loading "...\torch\lib\c10.dll"
原因
错误发生在 from ultralytics import YOLO 导入阶段,实际触发点是 PyTorch 加载 c10.dll 时缺少或未正确安装 Microsoft Visual C++ 运行库依赖。
通过安装 Microsoft Visual C++ Redistributable 后,脚本恢复正常。安装运行库后,即使将 DLL 预加载尝试代码全部注释掉,PyTorch 和 Ultralytics 仍然可以正常导入,因此 VC++ Redistributable 才是本次问题的主要解决方案。
当前环境信息:
- Windows 10 Pro 64 位
- Python 3.12.10 64 位
- PyTorch 2.13.0
- Ultralytics 8.4.138
处理过程
- 检查 Python、PyTorch 和 Ultralytics 的安装状态,确认依赖包没有版本冲突。
- 尝试重新安装 PyTorch,但错误仍然存在。
- 尝试预加载
c10.dll,可以暂时绕过当前进程中的错误,但这不是根因修复。 - 安装 Microsoft Visual C++ Redistributable。
- 注释掉 DLL 预加载代码后再次运行,仍然正常,确认系统运行库安装是关键修复。
验证结果
已完成以下验证:
export.py语法检查通过。- 安装 Microsoft Visual C++ Redistributable 后,
from ultralytics import YOLO导入成功。 - 注释掉 DLL 预加载代码后,导入和运行仍然成功。
- 编辑器错误检查结果为
No errors found。 pip check未发现依赖冲突。
环境依赖
Windows 用户运行 PyTorch 前,应安装与系统架构匹配的 Microsoft Visual C++ Redistributable,通常选择官方提供的 x64 版本:
https://learn.microsoft.com/en-us/cpp/windows/latest-supported-vc-redist
安装完成后建议重新打开终端或 VS Code,再运行脚本。
运行方式
powershell
D:\Python312\python.exe export.py
脚本后续会依次执行模型创建、加载、训练、验证、图片推理和 ONNX 导出。完整运行可能需要联网下载模型和示例图片。