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

如何让Typer的回溯信息恢复为常规Python样式

如何让Typer的回溯信息恢复为常规Python样式

嘿,这个问题我熟!Typer默认依赖Rich库来生成那种排版花哨、带颜色的错误回溯,要换回咱们熟悉的常规Python traceback,有几个简单实用的办法:

  • 代码全局配置(长期生效)
    如果你希望整个项目都默认用普通回溯,在初始化Typer应用的时候,把rich_tracebacks参数设为False就行:

    import typer
    
    # 关闭Rich美化的回溯信息
    app = typer.Typer(rich_tracebacks=False)
    
    # 你的命令函数定义...
    
  • 环境变量临时关闭(单次生效)
    不想改代码的话,直接在运行脚本前设置环境变量TYPER_NO_RICH_TRACEBACKS=1,这样这次运行就会输出常规的Python traceback了:

    TYPER_NO_RICH_TRACEBACKS=1 python scripts/add_priors.py
    

    这个方法特别适合临时调试的时候用,不用动项目代码。

  • 手动捕获异常打印(特殊场景)
    要是你只需要在特定代码块里用常规回溯,可以手动捕获异常后调用Python原生的traceback模块打印:

    import traceback
    import typer
    
    app = typer.Typer()
    
    @app.command()
    def main():
        try:
            # 这里放你的业务代码,比如你用到的polars扫描逻辑
            priors = (
                pl.scan_ndjson(ndjson, infer_schema_length=10000)
                # ...后续处理
            )
        except Exception as e:
            # 打印常规Python traceback
            traceback.print_exc()
            # 退出程序并返回错误码
            raise typer.Exit(code=1)
    

简单来说,前两种方法是最常用的——代码配置适合长期固定风格,环境变量适合临时调试需求,根据自己的场景选就行~

备注:内容来源于stack exchange,提问作者Cornelius Roemer

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.22 13:25:27