作者te1e1 (te1e1)
看板Python
标题[问题] Linux打包exe,竟然超过600M
时间Wed May 19 23:40:38 2021
饿死抬头,我前阵子写了一个不大的程式。因为之後是要在树莓派上面执行,
所以我就直接在树莓派上面进行pyinstaller,想要打包成exe执行档。结果发现
打包完後竟然超过600M,吓到我裤子都掉了下来。
它打包的过程中,我发现竟然还包含一堆我根本没用的模组,譬如PyQT或TK等,
如果真的要追究,我有使用pandas模组,应该会占一点空间,但也不至於这麽大吧!
想请问各位高手,有什麽解决的办法呢?
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 118.166.43.94 (台湾)
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Python/M.1621438840.A.55C.html
1F:推 yiche: 试试看nuitka 05/19 23:57
2F:→ yiche: 需要先装gcc 不过这对Linux 应该不是问题 05/19 23:57
3F:推 ddavid: 你打包时有新建一个乾净的虚拟环境吗? 05/20 02:10
4F:→ AndCycle: 你不大的程式用了什麽模组会差很多… 05/20 17:03
5F:推 jameschiou: 其实只要包pandas大概都破100MB... 05/20 17:43
6F:→ jameschiou: 後来写小工具都改用其他语言 python部署太痛了 05/20 17:44
7F:推 panex0845: 打包後档案太大通常是引用套件(package)的时候导入了 05/21 05:50
8F:→ panex0845: 没有使用的模组(model) 要缩小档案 只能一个一个引用 05/21 05:51
9F:→ panex0845: 需要的模组 05/21 05:51
10F:→ panex0845: 不过这方法效果有限 因为套件还有相依性(dependency) 05/21 05:56
11F:→ panex0845: 的问题 搞不好引用一个模组 杂七杂八的都相依进来了 05/21 05:57
12F:推 tsoahans: 先用cython转成c程式码再用gcc编译 这样会小很多 05/21 11:40
13F:→ tsoahans: 但是有用到的python函式库还是要另外装 05/21 11:41
14F:推 s860134: numpy pandas 好像就100以上了 05/22 18:25
15F:→ s860134: 轮子很重 只是你在车上没感觉 05/22 18:25
16F:→ s860134: pyinstaller 有参数强制去除套件引用 05/22 18:26
17F:→ s860134: --exclude-moduleXCLUDES 05/22 18:28
18F:→ s860134: 之前包 pil 做图片处理也是包到 numpy-core 变100多mb 去 05/22 18:29
19F:→ s860134: 掉後好像剩 10几mb 05/22 18:29
20F:→ s860134: 包的成品不弄成 one file 可以看一下是哪个东西吃容量 05/22 18:31
21F:推 ptta: 我也遇过,後来改用golang 05/23 19:53
22F:推 lycantrope: 只能推golang了 05/24 12:16
23F:→ kenduest: 有许多东西要用 go 来写不方便,pandas,numpy 替代方案? 05/24 12:24
24F:→ zxzx8059: 看前同事是用虚拟环境来包 05/24 21:59
25F:推 brt: 使用 venv 才能乾净打包 05/25 15:10
26F:推 yoyo178134: 欸写py一定要确认环境欸 05/25 18:14
27F:→ yoyo178134: 程式输出requirement.txt 05/25 18:14
28F:→ yoyo178134: 开venv然後source 後 05/25 18:14
29F:→ yoyo178134: pip3 install -r requirement.txt 05/25 18:14
30F:推 ToastBen: 3楼正解 05/26 01:12