You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

部署YOLOv5到Streamlit遇ultralytics模块缺失错误求解决方案

解决Streamlit部署YOLOv5时的ModuleNotFoundError问题

核心原因

本地运行时,torch.hub.load会自动下载并缓存YOLOv5仓库到本地目录,但Streamlit的部署环境是全新的,没有本地缓存,且默认不会自动安装ultralytics依赖,导致加载模型时找不到模块。

具体解决方法

1. 显式安装ultralytics依赖

在项目根目录创建requirements.txt文件,添加以下内容:

ultralytics>=8.0.0
torch>=2.0.0
torchvision>=0.15.0

Streamlit部署时会自动读取这个文件安装所需依赖,确保ultralytics模块能被正常调用。

2. 修改模型加载方式,摆脱本地缓存依赖

不要依赖本地缓存的模型文件,改用两种更可靠的加载方式:

  • 方式一:直接通过ultralytics导入YOLO类加载
    将自定义训练的.pt模型文件放到项目目录下,用以下代码加载:
    from ultralytics import YOLO
    
    # 加载本地自定义模型
    model = YOLO("your_custom_model.pt")
    
  • 方式二:指定仓库地址并强制重新加载
    如果坚持使用torch.hub.load,需要指定完整仓库地址,并设置force_reload=True让部署环境重新下载仓库资源:
    model = torch.hub.load('ultralytics/yolov5', 'custom', path='your_custom_model.pt', force_reload=True)
    

3. 确认自定义模型文件被正确上传

将你的自定义.pt模型文件放到项目根目录,部署时确保该文件被包含在上传的代码包中,不要依赖本地缓存的模型文件。

4. 提前检查部署环境依赖

可以在Streamlit代码开头添加依赖检查代码,方便排查问题:

import ultralytics
import torch

print(f"Ultralytics版本: {ultralytics.__version__}")
print(f"Torch版本: {torch.__version__}")

部署后查看日志,确认依赖是否正确安装。

内容的提问来源于stack exchange,提问作者afrologicinsect

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.18 12:02:07