[問題] Linux打包exe,竟然超過600M

作者: te1e1 (te1e1)   2021-05-19 23:40:38
餓死抬頭,我前陣子寫了一個不大的程式。因為之後是要在樹莓派上面執行,
所以我就直接在樹莓派上面進行pyinstaller,想要打包成exe執行檔。結果發現
打包完後竟然超過600M,嚇到我褲子都掉了下來。
它打包的過程中,我發現竟然還包含一堆我根本沒用的模組,譬如PyQT或TK等,
如果真的要追究,我有使用pandas模組,應該會占一點空間,但也不至於這麼大吧!
想請問各位高手,有什麼解決的辦法呢?
作者: yiche (你若安好,便是晴天)   2021-05-19 23:57:00
試試看nuitka需要先裝gcc 不過這對Linux 應該不是問題
作者: ddavid (謊言接線生)   2021-05-20 02:10:00
你打包時有新建一個乾淨的虛擬環境嗎?
作者: AndCycle (AndCycle)   2021-05-20 17:03:00
你不大的程式用了什麼模組會差很多…
作者: jameschiou (阿邱)   2021-05-20 17:43:00
其實只要包pandas大概都破100MB...後來寫小工具都改用其他語言 python部署太痛了
作者: panex0845 (胖克思)   2021-05-21 05:50:00
打包後檔案太大通常是引用套件(package)的時候導入了沒有使用的模組(model) 要縮小檔案 只能一個一個引用需要的模組不過這方法效果有限 因為套件還有相依性(dependency)的問題 搞不好引用一個模組 雜七雜八的都相依進來了
作者: tsoahans (ㄎㄎ)   2021-05-21 11:40:00
先用cython轉成c程式碼再用gcc編譯 這樣會小很多但是有用到的python函式庫還是要另外裝
作者: s860134 (s860134)   2021-05-22 18:25:00
numpy pandas 好像就100以上了輪子很重 只是你在車上沒感覺pyinstaller 有參數強制去除套件引用
作者: ptta (ptta)   2021-05-23 19:53:00
我也遇過,後來改用golang
作者: lycantrope (阿寬)   2021-05-24 12:16:00
只能推golang了
作者: kenduest (小州)   2021-05-24 12:24:00
有許多東西要用 go 來寫不方便,pandas,numpy 替代方案?
作者: zxzx8059 (zxzx8059)   2021-05-24 21:59:00
看前同事是用虛擬環境來包
作者: brt   2021-05-25 15:10:00
使用 venv 才能乾淨打包
作者: yoyo178134 (安安尼瑪)   2021-05-25 18:14:00
欸寫py一定要確認環境欸程式輸出requirement.txt開venv然後source 後pip3 install -r requirement.txt
作者: ToastBen (吐司邊)   2021-05-26 01:12:00
3樓正解

Links booklink

Contact Us: admin [ a t ] ucptt.com