在学习深度学习过程中,需要用到torchvision以及torchvision.transformers两个模块需要导入,导入时报错,显示找不到指定程序。

报错代码块

import torchvision
import torchvision.transforms as transforms

报错具体内容

ImportError: DLL load failed while importing _imaging: 找不到指定的程序。

排查问题

询问豆包,得到错误原因如下;

torchvision 的图像处理功能(如 transforms)依赖 Pillow 库,而 Pillow 的核心组件 _imaging 加载失败(通常是安装不完整或版本不兼容导致)。

解决方法

首先删除目前已经安装的vision库

pip uninstall -y pillow torchvision

返回结果如下:

感知有临时文件残留,这里需要关闭所有内核以及在运行的程序,按照路径找到该文件夹,手动删除。

对于torchvision 与 Pillow 存在版本依赖关系,不兼容可能导致加载失败:

  • 若使用 PyTorch 2.0+,建议 Pillow >= 9.1.0

  • 若使用旧版 PyTorch(如 1.13 及以下),建议 Pillow <= 9.5.0

在这里首先查看自己的Pytorch版本:

import torch   #查看torch版本
print(torch.__version__)  #注意是双下划线

返回结果是:2.8.0+cpu
询问豆包后得知当前Pytorch版本过新,目前官方公开的 PyTorch 稳定版本中,torch 2.8.0+cpu可能是较新的预发布版本(或存在版本命名误解),其对应的torchvision和torchaudio版本尚未广泛记录,但遵循 PyTorch 的版本匹配规则(torchaudio版本通常与torch一致,torchvision版本略低)。
因为版本过新,怕后续会有更多依赖冲突问题,这里我选择降级Pytorch版本到2.4.0,目前比较稳定。并安装与2.4.0对应的vision和audio。

pip install torch==2.4.0 torchvision==0.19.0 torchaudio==2.4.0 -f https://download.pytorch.org/whl/torch_stable.html

安装源使用-f https://download.pytorch.org/whl/torch_stable.html确保下载官方预编译版本,避免第三方源的版本混乱。

安装后返回以下结果:

仍然有残留临时文件,按照上述方法手动删除残留文件,若没有报警告则不用管。

重启内核,检查当前torch、vision和audio的版本信息:

import torch
import torchvision
import torchaudio

print("torch版本:", torch.__version__)       # 应输出 2.4.0
print("torchvision版本:", torchvision.__version__)  # 应输出 0.19.0
print("torchaudio版本:", torchaudio.__version__)    # 应输出 2.4.0

返回结果:

重新运行代码,问题解决。

版本对应关系图

torch 版本 torchvision 版本 torchaudio 版本
2.4.0 0.19.0 2.4.0
2.3.0 0.18.0 2.3.0
2.2.0 0.17.0 2.2.0
2.1.0 0.16.0 2.1.0
2.0.0 0.15.0 2.0.0
Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐