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