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

Typer框架中传递自定义类类型参数报错问题求助

解决Typer无法传递自定义类类型参数的问题

你的代码里直接用普通自定义类Parametrs作为Typer命令的参数,Typer本身不支持这种类型的解析,所以会抛出RuntimeError: Type not yet supported: <class '__main__.Parametrs'>错误。

要解决这个问题,需要借助Pydantic模型来定义参数类,因为Typer依赖Pydantic来处理复杂类型的参数解析,具体步骤如下:

  1. 先确保安装了Pydantic:
pip install pydantic
  1. 修改代码,让Parametrs继承自pydantic.BaseModel:
import typer
from pydantic import BaseModel

app = typer.Typer()


class Parametrs(BaseModel):
    one: int
    two: str


@app.command()
def calib(parametrs: Parametrs):
    print(f"One: {parametrs.one}, Two: {parametrs.two}")


if __name__ == "__main__":
    app()
  1. 执行命令时,直接通过命令行传递对应参数即可,Typer会自动解析到Parametrs实例中:
python your_script.py calib --one 123 --two "hello"

执行后就能正常输出:One: 123, Two: hello

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.07 12:49:55