Python 用 Gooey 库编写了一个最最简单的调用外部命令行的界面程序,打包后体积 30MB,怎么再次降低,最低能到多少 MB?

20 小时 11 分钟前
 Apol1oBelvedere

Python 用 Gooey 库编写了一个最最简单的调用外部命令行的界面程序,打包后体积 30MB ,怎么再次降低,最低能到多少 MB ?

如果降不下去体积到几兆,就换 Winform 或者 AutoIt 去做了。

945 次点击
所在节点    Python
16 条回复
ghostben
20 小时 2 分钟前
https://www.zhihu.com/question/48776632/answer/2336654649 lz 可以参考一下这个。

ps 个人研究了很久,如果真想做 10m 以下的小工具啥的,用 python 其实会很麻烦,不如换个技术栈
Leon6868
20 小时 0 分钟前
几乎不可能小于 10mb ,你可以试试 Nuitka 但是我觉得应该帮助不大

Python 写 GUI 就是为了方便嘛,大小肯定不占优势的
SenLief
10 小时 12 分钟前
python 打包不占优势,如果单文件还是 go
bler
9 小时 18 分钟前
不是编译型编程语言,打包后都得带上自身语言的虚拟机的,编译型语言,编译的时候就转化成二进制机器码了,像 python 这种编程语言,开发确实快,但是由于不是直接编译成二进制机器指令,需要带上自身虚拟机肯定大,你只能去找 c ,rust 之类的编程语言去看看,能不能找到好用的库,简化你的编写逻辑
bler
9 小时 16 分钟前
好像 go 也可以,直接编译成二进制,go 现在也挺火的,工具库应该也多,可以试试
bler
9 小时 11 分钟前
了解了一下 go ,虽然是编译成二进制文件,但是它依赖一个 runtime 运行时的东西,在我看来其实也是属于虚拟机的范畴,只不过相比于 python 这种,应该要小一点,你可以试试打包一下,看看文件大不大
sharkyc
8 小时 45 分钟前
python 打包等于带了一套运行环境进去 只能再删删包含的库 降到 10MB 下很难
iorilu
8 小时 25 分钟前
python 无论怎么弄都要自带一套 python 解释器, 标准库一套东西, 至少 10 几 M

再加上你开发用的图形库等, 图形库一般不会小, 几十 M 很正常

想要小最后换 rust 或 go 等, 当然不考虑跨平台就用微软的
skallz
8 小时 16 分钟前
想要体积小考虑 tauri 这种吧,python 小不了
li1218040201
7 小时 48 分钟前
https://github.com/tiny-craft/tiny-rdm
这个项目用的 wails ,打包后只有 10MB 。

我自己用过的
1 、tauri 打包后有 12MB 左右
2 、flutter 打包后有 24MB 左右

逻辑都非常简单,可以看作是「最小体积」
jjx
6 小时 6 分钟前
老实说, 既然用 python 了
30m 25m 20m 这样的差别从技术角度来说要追求的
但实际用途上完全没有意义, 30m 20m 都可以视为一样

30m 3m 才是有意义的, 但显然做不到
Apol1oBelvedere
5 小时 0 分钟前
@ghostben 按照教程发现三个库打包进去了,Gooey 和 wx 这两个用于界面删不了,NumPy 26MB 删除。配合 pipenv 命令,最后多番尝试打包出来 20.2 MB 。用如下的命令:
pyinstaller --onefile --noconsole --hidden-import=Gooey --exclude-module numpy D:\Temp\py1\main.py //20.2MB

@bler #4 @iorilu 已在尝试用 Winforms 去做了。
lizhenjia569
4 小时 43 分钟前
这个取决于 gooey 的依赖库大不大,纯 py 脚本最小可以做到 5MB ,参考韦老师的这个项目: https://github.com/skywind3000/PyStand
CassianVale
3 小时 57 分钟前
用 C++的话体积就能降下来了
PTLin
1 小时 53 分钟前
你说你这个挺简单的,有研究降低打包大小的时间,怕不是早就重写完了
zhmouV2
16 分钟前
问个题外话 python 各种打包工具有类似 treeshaking 的机制吗?感觉好像只要 import 就把所有 lib 引入进去了

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

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

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

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

© 2021 V2EX