调用transformers的pipeline接口加载torch_cuda.dll报错如何解决
导入transformers pipeline触发WinError127 找不到torch_cuda.dll 解决方案
报错复现场景
已安装transformers库,执行from transformers import pipeline时抛出OSError:
[WinError 127] 找不到指定的程序,加载路径"C:\Users\akalita\AppData\Local\Continuum\anaconda3\lib\site-packages\torch\lib\torch_cuda.dll"或其某一依赖项时出错
这个报错根源是PyTorch的CUDA动态链接库加载失败,和transformers库本身无关,按以下优先级排查解决即可:
- 第一步:校验PyTorch和CUDA版本匹配度
90%的此类问题都是版本不匹配导致。先打开NVIDIA控制面板,依次点击「帮助-系统信息-组件」,查看NVCUDA.dll对应的CUDA版本号,如果你安装的PyTorch要求的CUDA版本高于这个数值,就会出现dll加载失败。
激活你的anaconda对应环境,先卸载当前版本PyTorch:pip uninstall -y torch torchvision torchaudio
如果不需要用GPU加速跑模型,直接安装CPU版PyTorch即可,完全兼容transformers所有功能,不会出现CUDA相关报错,安装命令:pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cpu
如果需要用GPU,安装和自己CUDA版本号严格匹配的GPU版PyTorch即可。 - 第二步:补全VC运行时依赖
torch_cuda.dll依赖Visual C++ 2019及以上版本的x64运行库,系统缺失该运行库时也会报找不到指定程序的错误,安装对应版本VC运行库后重启终端即可。 - 第三步:排查环境变量冲突
如果系统里安装过多个版本的CUDA,检查系统PATH环境变量,把已卸载的旧版本CUDA相关路径全部删除,避免旧版本dll被优先加载导致版本错乱,修改完环境变量记得重启终端生效。 - 第四步:验证安装完整性
网络波动可能导致PyTorch安装过程中文件损坏,卸载后换稳定镜像源重新安装对应版本即可。安装完成后先执行校验命令:python -c "import torch; print(torch.cuda.is_available())"
命令执行不抛出异常就说明PyTorch加载正常,此时再导入transformers的pipeline就不会触发报错。
避坑提示:不要直接执行
pip install torch默认安装最新版PyTorch,最新版往往要求较高版本的CUDA,很容易和本地驱动版本不兼容触发dll错误。
内容的提问来源于stack exchange,提问作者Anuraag ..
相关产品推荐
相关产品推荐

