文章目录

  • 1、报错情况说明
  • 2、错误分析
  • 3、错误解决(重装torch、torchvision、torchaudio的心酸之旅)
    • 前提说明
    • 开始安装
    • (1)第一步:查看cuda版本号
    • (2)下载相应版本的`whl`文件
      • ①下载torch
      • ②下载torchvision
      • ③下载torchaudio
    • (3)安装whl
      • ①将下载好的whl文件存放到项目文件夹下
      • ②在命令行中进行操作

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_ResFile "C:\Users\24061\Desktop\MERcode\EMOPIA_cls-main\emopia_retrain\audio_cls\src\model\net.py", line 5, in <module>import torchaudioFile "C:\Users\24061\anaconda3\envs\emopianew\lib\site-packages\torchaudio\__init__.py", line 1, in <module>from torchaudio import _extension  # noqa: F401File "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_libtorch.ops.load_library(path)File "C:\Users\24061\anaconda3\envs\emopianew\lib\site-packages\torch\_ops.py", line 110, in load_libraryctypes.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这里。

初步判断,是由于torchtorchaudio版本不匹配导致的(事实证明,这个判断是正确的,我真聪明!)。

于是,开始debug之旅!(长路漫漫,过程太心酸了,以下步骤是笔者试错多次,最终总结的正确操作指南。)

3、错误解决(重装torch、torchvision、torchaudio的心酸之旅)

前提说明

笔者所用系统为Windows,本机已安装cudacudnn,下文为gpu版本的torchtorchvisiontorchaudio安装示例。

因为笔者本机有显卡,型号为NVIDIA GeForce GTX 1080 Ti,所以想安装gpu版本的,后续跑代码更方便嘛!显卡截图如下:


开始安装

安装过pytorch的朋友大概也知道,一般是去pytorch官网,根据推荐,然后用condapip进行安装。但是笔者用官网所给的链接进行下载时,一直报错(莫名的原因),于是此处选择离线下载的方式进行安装。

(1)第一步:查看cuda版本号

①查看cuda版本

笔者的cuda版本是10.2
查看cuda版本的方式为:命令行输入nvcc -Vnvcc --version

(2)下载相应版本的whl文件

离线下载网址:https://download.pytorch.org/whl/torch_stable.html。
该网站中,可以找到相应版本的whl文件进行下载。具体怎么选择,听笔者继续讲哈。

①下载torch

gpu版本的以cu开头,cu102表示cuda版本为10.2torch-1.10.1表示torch版本为1.10.1cp38表示python版本为3.8win表示适用于windows系统amd64表示64位系统

在选择torch版本时,只要保证cu和本机已安装的cuda对应,python版本与win/linux系均与环境匹配即可,然后在满足条件的torch-1.10.0torch-1.10.1torch-1.10.2等里面随便选一个即可。

此处笔者选择cu102torch-1.10.2版本,根据所用的环境,选择python3.8的windows版本:

②下载torchvision

搜索资料,找到一篇帮助笔者解决问题的帖子:PyTorch中torch、torchvision、torchaudio版本对应关系。
这篇帖子中,详细列出了torch、torchvision、torchaudio各个版本的对应关系。

根据帖子中所列的,可以找到与已下载的torch相匹配的torchvisiontorchaudio。然后来到离线网站上进行版本选择与下载(依旧是控制cucp系统三个要素即可,只要这三个条件与本机相符,torchvision的具体版本应该下载哪个,根据自己的心情决定):

③下载torchaudio

同样的方法下载torchaudio

(3)安装whl

注意:torch要最后装!torch要最后装!torch要最后装!

为什么一定要提前强调这句呢?因为笔者安装时踩坑了,当安装完torch,然后安装torchvision时,系统竟然在自动下载cpu版本的torch!好家伙,直接把笔者已安装的gpu版本的torch覆盖掉了。上图说明:(它竟然提示:成功卸载了torch-1.10.0)呵呵,一整个大无语。

所以!安装步骤应该为:安装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。然后如下图所示,查看是否安装成功:

  • 正确示范:我们可以看到相应的版本均是包含cugpu版本。输入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

OSError: [WinError 127] 找不到指定的程序。相关推荐

  1. [WinError 127] 找不到指定的程序

    Ref: https://blog.csdn.net/mengmengz07/article/details/103629693 问题: Windows系统,使用Anaconda,conda crea ...

  2. OSError: [WinError 126] 找不到指定的模块

    python调用动态库: OSError: [WinError 126] 找不到指定的模块 解决方法:把当前目录添加到系统中: 要添加目标文件的父目录: current_dir结尾不带'/',注意,后 ...

  3. OSError: [WinError 126] 找不到指定的模块/Could not find 'cudart64_90.dll'.

    OSError: [WinError 126] 找不到指定的模块/Could not find 'cudart64_90.dll'. 原文:http://blog.csdn.net/wobeatit/ ...

  4. OSError: [WinError 126] 找不到指定的模块————Shapely

    问题 OSError: [WinError 126] 找不到指定的模块----Shapely pip install shapely之后,跑程序报错误,错误如下:import shapely 没问题, ...

  5. python打包不能在其他电脑打开、找不到指定模块,pyinstaller打包移植到别的电脑报错OSError: [WinError 126] 找不到指定的模块。...

    首先说一下我的环境 win10 python3.6.4 下面是我安装库 版本 pip list Package         Version --------------- ------------ ...

  6. OSError: [WinError 126] 找不到指定的模块。【专治疑难杂症】

    OSError: [WinError 126] 找不到指定的模块. Error loading "D:\xxxxxxx\lib\site-packages\torch\lib\asmjit. ...

  7. OSError: [WinError 126] 找不到指定的模块。

    OSError: [WinError 126] 找不到指定的模块. 参考博客:https://www.pianshen.com/article/90841683243/ 环境:Win10+Anacon ...

  8. OSError: [WinError 126] 找不到指定的模块Errorloading“torch\lib\caffe2_nvrtc.dll“ or one of its dependencies.

    import torch x = torch.empty(5, 3) print(x) 报错 D:\Anaconda\anaconda3\python.exe D:/Python1自学/pythonP ...

  9. 解决Pytorch:raise err OSError: [WinError 126] 找不到指定的模块caffe2_detectron_ops.dll” or one of its dependen

    解决Pytorch:raise err OSError: [WinError 126] 找不到指定的模块 caffe2_detectron_ops.dll" or one of its de ...

最新文章

  1. R假设检验之Jarque-Bera检验(Jarque-Bera Test)
  2. python是一种解释类型的编程语言-Python入门你要懂哪些?这篇文章总算讲清楚了...
  3. OpenCV3源代码目录解析(算法模块解析 和 示例目录解析)
  4. 数据中心未来将向“四高”演进
  5. Ecplise切换项目里面的包的显示样式
  6. 使用WeUI+JS 的label包含input触发两次的问题
  7. 【面试相关】python实现快速幂取余算法详解
  8. python连接数据库mysql错误1045_django 连接数据库出现1045错误的解决方式
  9. 数据结构之外部排序:归并排序法
  10. sonarqube代码检核工具安装
  11. python面试题37道(附答案)看完面试不愁了
  12. ea mysql建模_UML数据建模工具之Enterprise Architect(EA)实例-UML应用
  13. 选择、冒泡、插入、快速排序
  14. Python社区采访Michael Kennedy
  15. 全球及中国可编程图形计算器行业研究及十四五规划分析报告
  16. VBS脚本统计红楼梦中贾宝玉出现的次数
  17. 7.7魔法宝石(dp) Bessie 的体重问题 干草出售
  18. HDMI EDID详细解析——C代码实现
  19. KingSCADA系统实施标准手册(热网项目适用)
  20. 仲联量行:科技行业繁荣推动深圳成为中国内地第三大办公楼市场

热门文章

  1. 深入原理64式:29 docker知识总结
  2. java excel合并内容相同的单元格
  3. YouDontKnowJS 小黄书学习小结
  4. 【IDEA】配置翻译插件【Translate】
  5. kubernetes(k8s) 基础理论
  6. SQL查询语句起别名
  7. Python:实现多个txt文本的简单合并,亲测简单好用,保姆教程
  8. 施乐维修服务器,富士施乐故障维修代码
  9. nodejs图片处理工具gm用法
  10. python提取pdf的数字_详解利用python提取pdf文本数字