最近在使用 click 的时候,发现一个问题,就是 click 不更新了,最近一次更新在 2023 年的 8月份
这非常的糟糕,而且 click 社区还欠着我的问题没有答复:How do I add the --version parameter when using click.CommandCollection
所以,如果你要继续(直接)使用 click 可能就得不到社区支持了
是时候找一个替代品了,我问了一下 gemini2.0 它像我推荐了一堆
库 | 特点 | 优点 | 缺点 | 适用场景 |
---|---|---|---|---|
argparse | Python 内置,功能齐全 | 无需额外依赖,资源丰富 | 语法稍显冗长 | 简单脚本或工具 |
plac | 简洁的语法,使用装饰器 | 易于上手 | 功能较少,社区活跃度较低 | 快速原型开发或小型工具 |
Fire | 将 Python 对象转换为 CLI | 非常容易使用 | 对于精细控制 CLI 行为的场景,可能不够灵活 | 快速将现有代码转换为 CLI 工具或管理脚本 |
Cliff | 强大的功能,支持子命令、插件等高级特性 | 功能强大 | 学习曲线较陡峭,对于简单 CLI 可能过于复杂 | 构建复杂的、多命令的 CLI 应用程序 |
Typer | 基于类型提示,现代化 | 代码提示和静态分析更好,语法简洁,易于使用 | 相对较新,生态系统不如 click 成熟 | 追求现代化的开发体验,注重代码类型安全 |
我看了一遍上面的包,觉得 Typer 是最有前途的,为什么?因为 Typer 是 fastapi 社区的维护,大家应该懂这个含金量吧?
github 地址: https://github.com/fastapi/typer
因为 click 没办法满足我的需求了,所以我打算后面使用 Typer 替代 click 来重写我的 idocker 工具
遇到的坑和问题,我会更新到这里,期待吧
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。