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

运行基于OWL-ViT的目标检测程序遇ModuleNotFoundError报错求助

解决ModuleNotFoundError: No module named 'transformers.utils'问题

核心原因

这个错误大概率是虚拟环境里的transformers版本过低——transformers.utils是较新版本才引入的模块,也可能是你运行代码时没激活虚拟环境,导致程序调用了全局环境里的旧版本库。

解决步骤

  1. 确认虚拟环境已激活
    先确保你启动了安装transformers的虚拟环境:

    • Windows系统:执行venv\Scripts\activate
    • Linux/macOS系统:执行source venv/bin/activate
      激活成功后,终端前缀会显示虚拟环境名称(比如(venv))。
  2. 升级transformers到兼容版本
    在激活的虚拟环境里运行命令:

    pip install --upgrade transformers
    

    也可以直接指定支持OWL-ViT的最低版本(建议≥4.20.0):

    pip install transformers>=4.20.0
    
  3. 验证修复效果
    激活虚拟环境后,启动Python并执行以下代码:

    import transformers
    print(transformers.__version__)
    from transformers import utils
    

    若没有报错,说明版本已经符合要求。

  4. 检查IDE运行环境
    如果用VS Code、PyCharm等IDE,要确认IDE的Python解释器已选中目标虚拟环境,避免IDE默认用全局环境运行代码。

代码额外优化提示

你的代码还有两个小问题可以调整:

  • 路径"..\imgs"建议改成os.path.join("..", "imgs"),适配跨平台使用,避免转义字符问题
  • os.listdir获取的是文件名,打开图片时需要拼接完整路径,否则会在当前目录查找文件,修改如下:
    img_dir = os.path.join("..", "imgs")
    fcontent = os.listdir(img_dir)
    
    def result(a):
        for imag in fcontent:
            image = Image.open(os.path.join(img_dir, imag))
            # 后续代码不变
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.01 00:47:21