PyTorch 1.2环境安装torchac触发subprocess.CalledProcessError报错如何解决
报错根因
这个报错是PyTorch JIT编译torchac的C扩展依赖时,系统未检测到可用的C编译器导致的。日志中subprocess.CalledProcessError: Command '['which', 'c++']' returned non-zero exit status 1明确说明系统找不到c++命令。
解决方案
- 第一步 安装C++编译工具链
根据你使用的操作系统执行对应安装命令:- Debian/Ubuntu(含WSL Ubuntu环境,从你的路径看属于WSL场景):
sudo apt update && sudo apt install build-essential g++ - CentOS/RHEL系:
sudo yum install gcc-c++ make
- Debian/Ubuntu(含WSL Ubuntu环境,从你的路径看属于WSL场景):
- 第二步 验证编译器安装状态
执行命令which c++,如果正常输出/usr/bin/c++这类路径无报错,说明编译器安装完成。 - 第三步 适配PyTorch版本调整编译器版本(可选,针对老版本PyTorch适配)
你使用的PyTorch 1.2版本和g++ 7/8版本兼容性最好,如果默认安装的g版本过高(比如g9及以上),可以安装指定版本并切换:# Ubuntu下安装g++7 sudo apt install g++-7 # 设置版本优先级 sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-7 70 # 切换版本,按照提示选择g++7对应编号即可 sudo update-alternatives --config g++ - 第四步 清理旧编译缓存
删除之前失败的编译缓存文件,避免残留影响:rm -rf ~/.cache/torch_extensions/*
完成以上步骤后重新运行代码即可,torchac会自动完成C++扩展的编译,不会再触发该报错。
内容的提问来源于stack exchange,提问作者neetu sigger
相关产品推荐
相关产品推荐

