[爆卦]python打包exe是什麼?優點缺點精華區懶人包

為什麼這篇python打包exe鄉民發文收入到精華區:因為在python打包exe這個討論話題中,有許多相關的文章在討論,這篇最有參考價值!作者te1e1 (te1e1)看板Python標題[問題] Linux打包exe,竟然超過600M時...


餓死抬頭,我前陣子寫了一個不大的程式。因為之後是要在樹莓派上面執行,

所以我就直接在樹莓派上面進行pyinstaller,想要打包成exe執行檔。結果發現

打包完後竟然超過600M,嚇到我褲子都掉了下來。

它打包的過程中,我發現竟然還包含一堆我根本沒用的模組,譬如PyQT或TK等,

如果真的要追究,我有使用pandas模組,應該會占一點空間,但也不至於這麼大吧!

想請問各位高手,有什麼解決的辦法呢?


--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 118.166.43.94 (臺灣)
※ 文章網址: https://www.ptt.cc/bbs/Python/M.1621438840.A.55C.html
yiche: 試試看nuitka 05/19 23:57
yiche: 需要先裝gcc 不過這對Linux 應該不是問題 05/19 23:57
ddavid: 你打包時有新建一個乾淨的虛擬環境嗎? 05/20 02:10
AndCycle: 你不大的程式用了什麼模組會差很多… 05/20 17:03
jameschiou: 其實只要包pandas大概都破100MB... 05/20 17:43
jameschiou: 後來寫小工具都改用其他語言 python部署太痛了 05/20 17:44
panex0845: 打包後檔案太大通常是引用套件(package)的時候導入了 05/21 05:50
panex0845: 沒有使用的模組(model) 要縮小檔案 只能一個一個引用 05/21 05:51
panex0845: 需要的模組 05/21 05:51
panex0845: 不過這方法效果有限 因為套件還有相依性(dependency) 05/21 05:56
panex0845: 的問題 搞不好引用一個模組 雜七雜八的都相依進來了 05/21 05:57
tsoahans: 先用cython轉成c程式碼再用gcc編譯 這樣會小很多 05/21 11:40
tsoahans: 但是有用到的python函式庫還是要另外裝 05/21 11:41
s860134: numpy pandas 好像就100以上了 05/22 18:25
s860134: 輪子很重 只是你在車上沒感覺 05/22 18:25
s860134: pyinstaller 有參數強制去除套件引用 05/22 18:26
s860134: --exclude-moduleXCLUDES 05/22 18:28
s860134: 之前包 pil 做圖片處理也是包到 numpy-core 變100多mb 去 05/22 18:29
s860134: 掉後好像剩 10幾mb 05/22 18:29
s860134: 包的成品不弄成 one file 可以看一下是哪個東西吃容量 05/22 18:31
ptta: 我也遇過,後來改用golang 05/23 19:53
lycantrope: 只能推golang了 05/24 12:16
kenduest: 有許多東西要用 go 來寫不方便,pandas,numpy 替代方案? 05/24 12:24
zxzx8059: 看前同事是用虛擬環境來包 05/24 21:59
brt: 使用 venv 才能乾淨打包 05/25 15:10
yoyo178134: 欸寫py一定要確認環境欸 05/25 18:14
yoyo178134: 程式輸出requirement.txt 05/25 18:14
yoyo178134: 開venv然後source 後 05/25 18:14
yoyo178134: pip3 install -r requirement.txt 05/25 18:14
ToastBen: 3樓正解 05/26 01:12

你可能也想看看

搜尋相關網站