电脑故障问答网

 找回密码
 立即注册
查看: 85|回复: 2

【Win】彻底解决subprocess.CalledProcessError

[复制链接]

2

主题

3

帖子

7

积分

新手上路

Rank: 1

积分
7
发表于 2022-12-9 21:36:36 | 显示全部楼层 |阅读模式
问题描述

在Windows下编译安装Pytorch相关的包时经常会遇到各种问题,往往都是由环境错误导致的,最常见的错误应该是:
subprocess.CalledProcessError: Command '['where', 'cl']' returned non-zero exit status 1这个问题很麻烦,可能有时候打开cmd,输入命令cl可以正常输出版本信息,但是在Conda虚拟环境下相同的命令就无法输出版本信息了了;有时候在Pycharm的Terminal中也无法正常输出,总之是很异常!
如果出现上述问题,则是msvc的环境配置出现了问题,也可以认为是 cl.exe 的环境配置问题
问题解决

要想避免这样的报错,就需要正确配置MSVC编译器,本人使用的是Win 11,因此所提出的解决办法对于不同版本的Windows端应该都是兼容的。
需要做以下准备:

  • 安装相关Windows SDK,8.1与10
  • 安装VS2017(此步骤省略)
  • 准备三组路径
在准备了上述内容后,我们就可以开始配置MSVC的环境
安装SDK

对于SDK,下载地址
打开下载地址,下载Windows 8.1 SDK


以及,10.0.14393,需要注意这个版本号,不要下载错了(理论上其他版本也可以,但是没试过)


下载后,双击安装,注意安装位置,一般默认按下一步即可,稍微等待即可
安装后,可以在对应的目录找到安装的Windows Kits,里面会有两个目录,分别名为8.1和10
需要注意的是,若出现下面的目录:


需要注意,这并不是我们要的目录,请严格按照下面指明的路径内容寻找
安装VS2017

请确保系统已安装VS2017,此处省略安装步骤
准备路径

安装好SDK后,我们需要准备下面三组路径
第一组,从VS2017中,找到下面这个路径:
D:\xxx\MicrosoftVisualStudio\2017\VC\Tools\MSVC\14.16.27023\bin\Hostx64
xxx:根据自己的实际安装路径情况而定,此处指代安装目录之外的路径,后文中的xxx同理
第二组,从VS2017以及Windows Kits中找到下面三个路径:
D:\xxx\MicrosoftVisualStudio\2017\VC\Tools\MSVC\14.16.27023\lib\x64
C:\Program Files (x86)\Windows Kits\8.1\Lib\winv6.3\um\x86
D:\Windows Kits\10\Lib\10.0.14393.0\ucrt\x86大家需要注意,除了xxx以外的路径,必须完全一致!完全一致!完全一致!比如,必须是um,必须是ucrt,别问为啥选x86,而不是x64,反正你按这个来就行,具体什么盘符,根据自己的安装情况来!
第三组,从VS2017以及Windows Kits中找到下面两个路径:
D:\xxx\MicrosoftVisualStudio\2017\VC\Tools\MSVC\14.16.27023\include
D:\Windows Kits\10\Include\10.0.14393.0\ucrt同理,除xxx以外,路径里的内容一定要一致
设置环境变量

有了上面三组路径,我们需要在环境变量中添加它们
打开系统环境变量设置,找到系统变量,按如下操作将路径进行添加:
注意:不是用户变量,是系统变量
第一组,将第一组所有路径添加到系统变量-->Path变量中(方法:编辑Path变量-->新建)
第二组,新建一个系统变量(注意是新建系统变量,与第一组有区别),名为 LIB


点开后如下图所示,第一行为变量名,将第二组的路径作为变量值赋值到第二行中,注意不同路径之间用分号分隔


第三组,新建一个系统变量,名为INCLUDE,将第三组的路径作为其变量值,不同路径用分号分隔
设置完以后,确定保存并重启电脑!
运行批处理程序

在重启之后,打开如下路径:
D:\xxx\MicrosoftVisualStudio\2017\VC\Auxiliary\Build在此路径下,双击运行 vcvarall.bat
之后,我们无论在任何终端打开,输入命令cl,都可以成功执行并返回版本信息
回复

使用道具 举报

1

主题

3

帖子

7

积分

新手上路

Rank: 1

积分
7
发表于 2025-2-4 16:26:01 | 显示全部楼层
沙发位出租,有意请联系电话:13838384381
回复

使用道具 举报

1

主题

5

帖子

9

积分

新手上路

Rank: 1

积分
9
发表于 2025-2-22 21:50:01 | 显示全部楼层
不错 支持下
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

云顶设计嘉兴有限公司模板设计.

免责声明:本站上数据均为演示站数据,如购买模板可以上DISCUZ应用中心购买,欢迎惠顾.

云顶官方站点:云顶设计 模板原创设计:云顶模板   Powered by Discuz! X3.4© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表