You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

升级Mac至Sonoma后运行Python脚本遇ninja非零退出状态1错误求助

Mac Sonoma升级后Python脚本调用ninja报错的解决办法

问题说明

升级MacOS Sonoma后,原本正常运行的Python脚本出现报错:

"/opt/homebrew/Cellar/python@3.10/3.10.9/Frameworks/Python.framework/Versions/3.10/lib/python3.10/subprocess.py", line 526, in run
        raise CalledProcessError(retcode, process.args,
    subprocess.CalledProcessError: Command '['/opt/homebrew/bin/ninja']' returned non-zero exit status 1.

直接在终端运行/opt/homebrew/bin/ninja时,提示:

ninja: error: loading 'build.ninja': No such file or directory

已尝试重装、更新ninja,问题未解决。


解决步骤

  • 检查脚本的工作目录
    ninja默认会在当前工作目录查找build.ninja文件,如果Python脚本执行时的工作目录不是项目的构建目录,就会触发这个错误。找到项目里build.ninja的实际路径,在脚本调用ninja前切换目录:

    import os
    os.chdir("/实际路径/包含build.ninja的目录")
    
  • 显式指定build.ninja路径
    要是没法切换工作目录,调用ninja时用-f参数直接指定文件位置:

    import subprocess
    subprocess.run(["/opt/homebrew/bin/ninja", "-f", "/实际路径/build.ninja"], check=True)
    
  • 修复Homebrew环境
    Sonoma升级可能打乱了Homebrew的环境配置:

    1. 重新初始化Homebrew环境:
      eval "$(/opt/homebrew/bin/brew shellenv)"
      
    2. 重装ninja并检查环境问题:
      brew reinstall ninja
      brew doctor
      
      跟着brew doctor的提示修复所有权限、依赖相关的问题。
  • 重置Python环境依赖
    系统升级可能损坏了Python的依赖链:

    1. 更新pip并重装脚本依赖:
      pip3 install --upgrade pip
      pip3 install -r requirements.txt
      
    2. 测试简单的ninja调用,排查subprocess模块问题:
      import subprocess
      result = subprocess.run(["ninja", "-f", "/实际路径/build.ninja", "-v"], capture_output=True, text=True)
      print(result.stdout)
      print(result.stderr)
      

内容的提问来源于stack exchange,提问作者Morcus

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.22 19:56:02