
Python 用 Gooey 库编写了一个最最简单的调用外部命令行的界面程序,打包后体积 30MB ,怎么再次降低,最低能到多少 MB ?
如果降不下去体积到几兆,就换 Winform 或者 AutoIt 去做了。
| td width="auto" valign="top" align="left"> |
2 Leon6868 2024-11-20 22:25:47 +08:00 几乎不可能小于 10mb ,你可以试试 Nuitka 但是我觉得应该帮助不大 Python 写 GUI 就是为了方便嘛,大小肯定不占优势的 |
3 SenLief 2024-11-21 08:13:49 +08:00 python 打包不占优势,如果单文件还是 go |
4 bler 2024-11-21 09:07:43 +08:00 不是编译型编程语言,打包后都得带上自身语言的虚拟机的,编译型语言,编译的时候就转化成二进制机器码了,像 python 这种编程语言,开发确实快,但是由于不是直接编译成二进制机器指令,需要带上自身虚拟机肯定大,你只能去找 c ,rust 之类的编程语言去看看,能不能找到好用的库,简化你的编写逻辑 |
5 bler 2024-11-21 09:09:55 +08:00 好像 go 也可以,直接编译成二进制,go 现在也挺火的,工具库应该也多,可以试试 |
6 bler 2024-11-21 09:15:00 +08:00 了解了一下 go ,虽然是编译成二进制文件,但是它依赖一个 runtime 运行时的东西,在我看来其实也是属于虚拟机的范畴,只不过相比于 python 这种,应该要小一点,你可以试试打包一下,看看文件大不大 |
7 sharkyc 2024-11-21 09:40:52 +08:00 python 打包等于带了一套运行环境进去 只能再删删包含的库 降到 10MB 下很难 |
8 iorilu 2024-11-21 10:00:53 +08:00 python 无论怎么弄都要自带一套 python 解释器, 标准库一套东西, 至少 10 几 M 再加上你开发用的图形库等, 图形库一般不会小, 几十 M 很正常 想要小最后换 rust 或 go 等, 当然不考虑跨平台就用微软的 |
9 skallz 2024-11-21 10:10:05 +08:00 想要体积小考虑 tauri 这种吧,python 小不了 |
10 ltaoo1o 2024-11-21 10:37:44 +08:00 https://github.com/tiny-craft/tiny-rdm 这个项目用的 wails ,打包后只有 10MB 。 我自己用过的 1 、tauri 打包后有 12MB 左右 2 、flutter 打包后有 24MB 左右 逻辑都非常简单,可以看作是「最小体积」 |
11 jjx 2024-11-21 12:19:55 +08:00 老实说, 既然用 python 了 30m 25m 20m 这样的差别从技术角度来说要追求的 但实际用途上完全没有意义, 30m 20m 都可以视为一样 30m 3m 才是有意义的, 但显然做不到 |
12 Apol1oBelvedere OP |
13 lizhenjia569 2024-11-21 13:43:03 +08:00 这个取决于 gooey 的依赖库大不大,纯 py 脚本最小可以做到 5MB ,参考韦老师的这个项目: https://github.com/skywind3000/PyStand |
14 CassianVale 2024-11-21 14:28:38 +08:00 用 C++的话体积就能降下来了 |
15 PTLin 2024-11-21 16:32:22 +08:00 你说你这个挺简单的,有研究降低打包大小的时间,怕不是早就重写完了 |
16 zhmouV2 2024-11-21 18:09:11 +08:00 问个题外话 python 各种打包工具有类似 treeshaking 的机制吗?感觉好像只要 import 就把所有 lib 引入进去了 |
18 Apol1oBelvedere OP @ghostben 尝试了一下 Koda 做界面+WindSurf 智能出代码+Autoit3 编译,时间短效率高界面还行。甚至于编写一个 VC 界面程序也是可能的。 |
19 Apol1oBelvedere OP @Apol1oBelvedere #18 更新,找到更强的解决办法:Visual Studio (做界面)和 WindSurf ( AI 生成代码)配合,公用一个项目文件夹,基本无缝完成简单项目,又快又好。 |