一句话概括就是三个都不太好用(如果需求不是简单展示)。会写前端并且对功能有要求的还是使用JS或者其他框架吧。不过最不建议的还是Taipy,毕竟出问题了也无处可寻 😦
如果一定要用,建议使用之前看一下是否有相对应的组件以及功能,否则自定义的路都会比较曲折。
Streamlit
优点:
- 成熟很多,community比较大,遇到问题基本能找到类似的。
- 组件多,自带的功能也比较多,document比较完善。
- 搭起来真的很快,学习成本比较低
- 部署方便(虽然没试过)
- 可以使用Markdown,HTML自定义
缺点:
- 样式自定义比较麻烦,作者的回复是通常自定义出来的都比较丑,所以一直没有开放自定义。
- 界面数据更新麻烦,基本上需要rerun,不支持动态渲染,会flush掉原来的变量(不过也可以自己保存)
- 有些很basic的功能不支持且很难自己重写,比如auto scroll to bottom
Taipy
优点:
- 支持自定义,样式选择比较多。
- 看上去比较fancy。
缺点:
- 搭建起来有点麻烦,有markdown/html/gui builder三种方式,但是每一种都没有很丰富的示例。
- 是基于Thread写的,但是也没有文档写出来怎么处理的Thread,以至于会遇到一些 daemon线程的搞不太清楚的问题
- 功能比较少, 虽然官方提供了蛮多demo,但是variety比较少,有点难自己探索自定义之类的。
Gradio
优点:
- 使用也很简单,几行代码就可以搭一个网页
- 组件的封装程度高,适合机器学习的代码,支持多种数据输入输出
- Hugging Face 支持的,开发生态也比较好。
缺点:
- 扩展差,改写难
- 不太支持复杂数据、使用场景
- 样式比较plain