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

Flask API调用recasepunc模型时subprocess返回非零退出状态1问题

解决recasepunc模型调用报错的步骤
  • 捕获详细错误信息
    原代码仅获取标准输出,无法看到具体错误原因。修改subprocess调用逻辑,同时捕获标准错误输出:

    import subprocess
    
    text = "Hello"
    try:
        # 改用列表传参,避免shell解析带来的问题
        proc = subprocess.Popen(
            ["python", "recasepunc/recasepunc.py", "predict", "recasepunc/checkpoint"],
            stdin=subprocess.PIPE,
            stdout=subprocess.PIPE,
            stderr=subprocess.PIPE,
            text=True
        )
        stdout, stderr = proc.communicate(input=text)
        if proc.returncode != 0:
            print(f"错误详情: {stderr}")
        else:
            print(stdout)
    except Exception as e:
        print(f"执行异常: {str(e)}")
    

    运行后即可看到具体报错内容,比如模型文件缺失、参数格式错误等。

  • 验证命令行直接调用
    脱离Flask环境,在终端手动执行命令测试:

    echo "Hello" | python recasepunc/recasepunc.py predict recasepunc/checkpoint
    

    如果命令行也报错,说明问题出在模型本身或参数配置,和Flask无关,优先根据终端的错误提示排查。

  • 检查checkpoint路径有效性
    确认recasepunc/checkpoint目录真实存在,且包含模型运行必需的文件(如权重文件、配置文件等)。若路径不正确,替换为正确的绝对路径或相对路径。

  • 确认Python环境一致性
    检查Flask运行的Python环境和安装依赖的环境是否一致:

    • 终端执行 which python 查看当前环境路径
    • 在Flask代码中添加 import sys; print(sys.executable) 打印运行环境路径
      若路径不同,说明依赖安装在了错误的环境,切换到对应环境重新安装依赖即可。
  • 核对模型输入要求
    查看recasepunc.py中predict模式的代码逻辑,确认输入格式是否符合要求(比如是否需要全小写输入、是否要求每行一个句子等),调整输入文本格式后再次测试。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.06 13:55:36