发现 gradio.app 用来开发 demo 程序很方便

2023-07-10 16:00:54 +08:00
 AnyISalIn

最近研究 stable-diffusion-webui ,开发了一个云推理的插件 https://github.com/omniinfer/sd-webui-cloud-inference

开发插件的过程中,发现 https://gradio.app/docs 这个框架写出来的代码很简洁,适合写 demo 程序。

2653 次点击
所在节点    程序员
11 条回复
Winrey
2023-07-10 16:12:02 +08:00
但是到现在 gradio 对动态可变数量也没有什么好的组件
AnyISalIn
2023-07-10 16:13:50 +08:00
@Winrey 嗯,这是一个比较大的问题,目前大家是通过一个手动 refresh button 来解决的,通过 js 定时 refresh 也可以解决部分问题。
alexapollo
2023-07-10 18:38:27 +08:00
https://github.com/geekan/MetaGPT/

python startup.py "写一个基于 gradio 的 xxx 系统"
Betsy
2023-07-10 18:42:01 +08:00
Streamlit 呢?
zhzy
2023-07-10 19:09:58 +08:00
是挺方便,就是不太好看。
如果为了好看去改样式,好像又不是很合理...
shic
2023-07-10 21:18:23 +08:00
还有 nicegui ,pywebio
akaHenry
2023-07-11 03:29:32 +08:00
@shic python web gui 方案, 写 web app, 使用 docker 部署, 挺方便.

但是, 通病问题, 打包成 desktop app, 坑非常多.

PyInstaller 之类的工具, 真的是一言难尽. 限制了英语场景.

之前尝试打包 nicegui, 包是打出来, 但是不 work, 也看不到报错 log. 而且还有内存泄露, 进程不停的崩溃+重开.

离谱.
SoulMelody
2023-07-11 07:06:54 +08:00
@akaHenry 可以试试 cx_Freeze ,除了不支持单文件模式,打个包还是不在话下的
akaHenry
2023-07-11 09:52:15 +08:00
@SoulMelody

试了下 cx_Freeze, 确实打出来的包, 看起来正常多了. (包内容文件, 依赖似乎都在)


https://github.com/better-py/learn-py/blob/main/packages/py-try/try-nicegui/build2.py#L61


我在 macOS 下, 用 cx_Freeze 打包 nicegui 示例. 不过打开还是会崩溃, 查到的崩溃 log 如下:

nicegui 默认使用 fastapi 启动了 端口. (web 方式).

这里的报错, 是端口有问题. 感兴趣的话, 可以看我上面贴的链接, 是不是我的 build 配置参数有问题?



"reportNotes" : [
"_dyld_process_info_create failed with 6",
"dyld_process_snapshot_get_shared_cache failed",
"Failed to create CSSymbolicatorRef - corpse still valid ¯\\_(ツ)_\/¯",
"thread_get_state(PAGEIN) returned 0x10000003: (ipc\/send) invalid destination port",
"thread_get_state(EXCEPTION) returned 0x10000003: (ipc\/send) invalid destination port",
"thread_get_state(FLAVOR) returned 0x10000003: (ipc\/send) invalid destination port"
]
akaHenry
2023-07-11 09:53:35 +08:00
打包脚本, 运行入口在这里:

https://github.com/better-py/learn-py/blob/main/packages/py-try/try-nicegui/Taskfile.yml#L56


```

poetry run python build2.py bdist_dmg

```
SoulMelody
2023-07-11 11:13:46 +08:00
@akaHenry https://github.com/zauberzeug/nicegui/issues/355 看起来是 nicegui 打包运行时必须改成使用 reload=False

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/955552

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX