
OSError: [WinError 127] 找不到指定的程序。
文章目录
1、报错情况说明
笔者在复现代码的时候,遇到报错OSError: [WinError 127] 找不到指定的程序。
下方列出了报错信息与截图:
Traceback (most recent call last):
File "C:/Users/24061/Desktop/MERcode/EMOPIA_cls-main/emopia_retrain/audio_cls/train_test.py", line 13, in <module>
from src.model.net import ShortChunkCNN_Res
File "C:\Users\24061\Desktop\MERcode\EMOPIA_cls-main\emopia_retrain\audio_cls\src\model\net.py", line 5, in <module>
import torchaudio
File "C:\Users\24061\anaconda3\envs\emopianew\lib\site-packages\torchaudio\__init__.py", line 1, in <module>
from torchaudio import _extension # noqa: F401
File "C:\Users\24061\anaconda3\envs\emopianew\lib\site-packages\torchaudio\_extension.py", line 67, in <module>
_init_extension()
File "C:\Users\24061\anaconda3\envs\emopianew\lib\site-packages\torchaudio\_extension.py", line 61, in _init_extension
_load_lib("libtorchaudio")
File "C:\Users\24061\anaconda3\envs\emopianew\lib\site-packages\torchaudio\_extension.py", line 51, in _load_lib
torch.ops.load_library(path)
File "C:\Users\24061\anaconda3\envs\emopianew\lib\site-packages\torch\_ops.py", line 110, in load_library
ctypes.CDLL(path)
File "C:\Users\24061\anaconda3\envs\emopianew\lib\ctypes\__init__.py", line 381, in __init__
self._handle = _dlopen(self._name, mode)
OSError: [WinError 127] 找不到指定的程序。
2、错误分析
查阅了很多资料,所有报错指南均指向一个原因:存在包的版本不匹配问题!
从报错信息可以看到,在import torchaudio
后面引发了一系列错误,根源就在torchaudio
这里。
初步判断,是由于torch
与torchaudio
版本不匹配导致的(事实证明,这个判断是正确的,我真聪明!)。
于是,开始debug之旅!(长路漫漫,过程太心酸了,以下步骤是笔者试错多次,最终总结的正确操作指南。)
3、错误解决(重装torch、torchvision、torchaudio的心酸之旅)
前提说明
笔者所用系统为Windows,本机已安装cuda和cudnn,下文为gpu版本的torch、torchvision、torchaudio安装示例。
因为笔者本机有显卡,型号为NVIDIA GeForce GTX 1080 Ti
,所以想安装gpu
版本的,后续跑代码更方便嘛!显卡截图如下:
开始安装
安装过pytorch的朋友大概也知道,一般是去pytorch官网,根据推荐,然后用
conda
或pip
进行安装。但是笔者用官网所给的链接进行下载时,一直报错(莫名的原因),于是此处选择离线下载
的方式进行安装。
(1)第一步:查看cuda版本号
①查看cuda版本
笔者的cuda版本是10.2
查看cuda版本的方式为:命令行输入nvcc -V
或nvcc --version
:
(2)下载相应版本的whl
文件
离线下载网址:https://download.pytorch.org/whl/torch_stable.html。
该网站中,可以找到相应版本的whl
文件进行下载。具体怎么选择,听笔者继续讲哈。
①下载torch
gpu版本的以cu
开头,cu102
表示cuda版本为10.2
, torch-1.10.1
表示torch版本为1.10.1
,cp38
表示python版本为3.8
,win
表示适用于windows系统
,amd64
表示64位系统
。
在选择torch
版本时,只要保证cu
和本机已安装的cuda
对应,python
版本与win/linux
系均与环境匹配即可,然后在满足条件的torch-1.10.0
、torch-1.10.1
、torch-1.10.2
等里面随便选一个即可。
此处笔者选择
cu102
的torch-1.10.2
版本,根据所用的环境,选择python3.8的windows版本:
②下载torchvision
搜索资料,找到一篇帮助笔者解决问题的帖子:PyTorch中torch、torchvision、torchaudio版本对应关系。
这篇帖子中,详细列出了torch、torchvision、torchaudio各个版本的对应关系。
根据帖子中所列的,可以找到与已下载的torch
相匹配的torchvision
和torchaudio
。然后来到离线网站上进行版本选择与下载(依旧是控制cu
、cp
、系统
三个要素即可,只要这三个条件与本机相符,torchvision的具体版本应该下载哪个,根据自己的心情决定):
③下载torchaudio
同样的方法下载torchaudio
:
(3)安装whl
注意:torch要最后装!torch要最后装!torch要最后装!
为什么一定要提前强调这句呢?因为笔者安装时踩坑了,当安装完
torch
,然后安装torchvision
时,系统竟然在自动下载
!好家伙,直接把笔者已安装的gpu版本的torch覆盖掉了。上图说明:(它竟然提示:成功卸载了torch-1.10.0)呵呵,一整个大无语。 版本的torch
所以!安装步骤应该为:安装torchvision
→安装torchaudio
→安装torch
。
①将下载好的whl文件存放到项目文件夹下
笔者存放的位置为C:\Users\24061\anaconda3\envs\emopianew\Lib\site-packages
文件夹下。
②在命令行中进行操作
激活环境
conda activate emopianew # 此处emopianew为笔者的项目的环境名
切换目录
cd C:\Users\24061\anaconda3\envs\emopianew\Lib\site-packages
然后pip install whl文件
-
安装
torchvision
pip install torchvision-0.11.3+cu102-cp38-cp38-win_amd64.whl
注:如果这个过程中自动下载了
torch
,请用pip uninstall torch
命令将其删掉。因为它自动下载的是cpu版本的torch,没什么用。 -
安装
torchaudio
pip install torchaudio-0.10.0+cu102-cp38-cp38-win_amd64.whl
-
安装
torch
pip install torch-1.10.2+cu102-cp38-cp38-win_amd64.whl
安装完成后,在命令行中输入python
,启动python。然后如下图所示,查看是否安装成功:
- 正确示范:我们可以看到相应的版本均是包含
cu
的gpu
版本。输入torch.cuda.is_available()
可以看到True
,表示gpu可以用了。
介绍一些用于查看可用cuda
的指令:
- 错误示范
跟着笔者操作到这里的小伙伴,基本上都安装成功了。但是呢,保不齐有些小伙伴操作失误,亦或者是系统各种莫名的bug,导致出现以下错误,看图:
明晃晃的三个字:cpu
!你中招了!别哭别哭,你的这些磨难笔者都一一经历过,正所谓:满纸荒唐言,一把辛酸泪。都云作者痴,谁解其中味!debug的辛酸,经历过的人才懂。
出现这种情况,只需要pip uninstall 包名
卸载掉,然后返回上面步骤,pip install whl文件
重新装包就行。
回归本文开头提到的报错问题:OSError: [WinError 127] 找不到指定的程序。
,至此就算彻底解决了。重新运行程序,也没有再出现这个错误了。
(本文完)
感谢以下帖子对笔者的帮助:
pytorch gpu安装教程(Perfect完美系列)
torch.cuda.is_available()返回false——解决办法
pytorch中文文档:
https://pytorch-cn.readthedocs.io/zh/latest/
torchaudio文档:https://pytorch.org/audio/stable/sox_effects.html
更多推荐








所有评论(0)