最近在使用 click 的时候,发现一个问题,就是 click 不更新了,最近一次更新在 2023 年的 8月份

图片.png

这非常的糟糕,而且 click 社区还欠着我的问题没有答复:How do I add the --version parameter when using click.CommandCollection

所以,如果你要继续(直接)使用 click 可能就得不到社区支持了

是时候找一个替代品了,我问了一下 gemini2.0 它像我推荐了一堆

特点优点缺点适用场景
argparsePython 内置,功能齐全无需额外依赖,资源丰富语法稍显冗长简单脚本或工具
plac简洁的语法,使用装饰器易于上手功能较少,社区活跃度较低快速原型开发或小型工具
Fire将 Python 对象转换为 CLI非常容易使用对于精细控制 CLI 行为的场景,可能不够灵活快速将现有代码转换为 CLI 工具或管理脚本
Cliff强大的功能,支持子命令、插件等高级特性功能强大学习曲线较陡峭,对于简单 CLI 可能过于复杂构建复杂的、多命令的 CLI 应用程序
Typer基于类型提示,现代化代码提示和静态分析更好,语法简洁,易于使用相对较新,生态系统不如 click 成熟追求现代化的开发体验,注重代码类型安全

我看了一遍上面的包,觉得 Typer 是最有前途的,为什么?因为 Typer 是 fastapi 社区的维护,大家应该懂这个含金量吧?

github 地址: https://github.com/fastapi/typer

因为 click 没办法满足我的需求了,所以我打算后面使用 Typer 替代 click 来重写我的 idocker 工具

遇到的坑和问题,我会更新到这里,期待吧


universe_king
3.4k 声望680 粉丝