subprocess.CalledProcessError: Command ‘[‘ninja‘, ‘-v‘]‘ returned non-zero exit status 1

发布时间 2023-12-20 09:29:26作者: 梅丹隆

一、原因

pytorch版本大于1.5

二、解决

1、降低pytorch版本

将pytorch版本降到1.5以下

2、禁用ninjia

pytorch默认使用ninjia作为backend,将其禁用。替换为以下代码

setup(
    ...,
    cmdclass={
        # 'build_ext': BuildExtension,
        'build_ext': BuildExtension.with_options(use_ninja=False),
    }
)

补充:网络上一些建议将torch/utils/cpp_extension.py中的['ninja','-v']改成['ninja','--version']。这个方法是不可行的!参考-v命令解释
image.png
并不是简单获取版本号,而是涉及编译,不了解源码建议不要更改。