最近一直在找一个简单的基于Python的多平台UI实现,特别是希望能比较好地支持手机端。
总结一下标准是:
- Python,最好能支持Numpy、Pandas等库无缝集成
- 简单,不要考虑过多的实现细节,如html、css、qt等
- 多端支持,特别是手机
- 成熟,稳定,社区活跃
这样找了许多
- PyQT,需要从C++和QT支持,不合适
- PyReact,
- ReactPy、Transript
- Kivy
- Flet
- 等等
最后还是觉得Flet比较简洁,可以基于这个先抽象封装,以后还可以置换其他后端。
值得一提的是,做第一个尝试的失败。由于自己的包管理是用的miniforge也就是conda,所以就相当然conda install flet,别说还真有。不过这也就给自己埋了个坑,用了一个晚上才爬出来。——conda默认带的是0.1.52的flet,这个版本有bug,且功能有限。下载速度也比较慢,一个Helloworld用了一个小时才启动,还在启动时命令行报错websocket无法连接,甚至还有某些属性没有,调查以后实际这是多年前就解决了的bug,新版是不影响的。
最终结论,还是应该用官网的pip install flet来做,下次独立用virtualenv和pip搞就好。