Typer框架中传递自定义类类型参数报错问题求助
解决Typer无法传递自定义类类型参数的问题
你的代码里直接用普通自定义类Parametrs作为Typer命令的参数,Typer本身不支持这种类型的解析,所以会抛出RuntimeError: Type not yet supported: <class '__main__.Parametrs'>错误。
要解决这个问题,需要借助Pydantic模型来定义参数类,因为Typer依赖Pydantic来处理复杂类型的参数解析,具体步骤如下:
- 先确保安装了Pydantic:
pip install pydantic
- 修改代码,让
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()
- 执行命令时,直接通过命令行传递对应参数即可,Typer会自动解析到
Parametrs实例中:
python your_script.py calib --one 123 --two "hello"
执行后就能正常输出:One: 123, Two: hello
内容的提问来源于stack exchange,提问作者roman
相关产品推荐
相关产品推荐

