解决报错:DLL load failed while importing _imaging: 找不到指定的程序。
摘要:在导入torchvision模块时出现"DLL加载失败"错误,原因是Pillow库的_imaging组件加载失败。通过检查发现当前PyTorch版本(2.8.0+cpu)过新,可能存在兼容问题。解决方案包括:1)卸载原有torchvision和Pillow;2)手动删除残留文件;3)降级安装PyTorch 2.4.0及其匹配的torchvision 0.19.0和torc
在学习深度学习过程中,需要用到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 |
更多推荐
所有评论(0)