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

看板Python作者 (te1e1)時間3年前 (2021/05/19 23:40), 編輯推噓11(11019)
留言30則, 14人參與, 3年前最新討論串1/1
餓死抬頭,我前陣子寫了一個不大的程式。因為之後是要在樹莓派上面執行, 所以我就直接在樹莓派上面進行pyinstaller,想要打包成exe執行檔。結果發現 打包完後竟然超過600M,嚇到我褲子都掉了下來。 它打包的過程中,我發現竟然還包含一堆我根本沒用的模組,譬如PyQT或TK等, 如果真的要追究,我有使用pandas模組,應該會占一點空間,但也不至於這麼大吧! 想請問各位高手,有什麼解決的辦法呢? -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 118.166.43.94 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/Python/M.1621438840.A.55C.html

05/19 23:57, 3年前 , 1F
試試看nuitka
05/19 23:57, 1F

05/19 23:57, 3年前 , 2F
需要先裝gcc 不過這對Linux 應該不是問題
05/19 23:57, 2F

05/20 02:10, 3年前 , 3F
你打包時有新建一個乾淨的虛擬環境嗎?
05/20 02:10, 3F

05/20 17:03, 3年前 , 4F
你不大的程式用了什麼模組會差很多…
05/20 17:03, 4F

05/20 17:43, 3年前 , 5F
其實只要包pandas大概都破100MB...
05/20 17:43, 5F

05/20 17:44, 3年前 , 6F
後來寫小工具都改用其他語言 python部署太痛了
05/20 17:44, 6F

05/21 05:50, 3年前 , 7F
打包後檔案太大通常是引用套件(package)的時候導入了
05/21 05:50, 7F

05/21 05:51, 3年前 , 8F
沒有使用的模組(model) 要縮小檔案 只能一個一個引用
05/21 05:51, 8F

05/21 05:51, 3年前 , 9F
需要的模組
05/21 05:51, 9F

05/21 05:56, 3年前 , 10F
不過這方法效果有限 因為套件還有相依性(dependency)
05/21 05:56, 10F

05/21 05:57, 3年前 , 11F
的問題 搞不好引用一個模組 雜七雜八的都相依進來了
05/21 05:57, 11F

05/21 11:40, 3年前 , 12F
先用cython轉成c程式碼再用gcc編譯 這樣會小很多
05/21 11:40, 12F

05/21 11:41, 3年前 , 13F
但是有用到的python函式庫還是要另外裝
05/21 11:41, 13F

05/22 18:25, 3年前 , 14F
numpy pandas 好像就100以上了
05/22 18:25, 14F

05/22 18:25, 3年前 , 15F
輪子很重 只是你在車上沒感覺
05/22 18:25, 15F

05/22 18:26, 3年前 , 16F
pyinstaller 有參數強制去除套件引用
05/22 18:26, 16F

05/22 18:28, 3年前 , 17F
--exclude-moduleXCLUDES
05/22 18:28, 17F

05/22 18:29, 3年前 , 18F
之前包 pil 做圖片處理也是包到 numpy-core 變100多mb 去
05/22 18:29, 18F

05/22 18:29, 3年前 , 19F
掉後好像剩 10幾mb
05/22 18:29, 19F

05/22 18:31, 3年前 , 20F
包的成品不弄成 one file 可以看一下是哪個東西吃容量
05/22 18:31, 20F

05/23 19:53, 3年前 , 21F
我也遇過,後來改用golang
05/23 19:53, 21F

05/24 12:16, 3年前 , 22F
只能推golang了
05/24 12:16, 22F

05/24 12:24, 3年前 , 23F
有許多東西要用 go 來寫不方便,pandas,numpy 替代方案?
05/24 12:24, 23F

05/24 21:59, 3年前 , 24F
看前同事是用虛擬環境來包
05/24 21:59, 24F

05/25 15:10, 3年前 , 25F
使用 venv 才能乾淨打包
05/25 15:10, 25F

05/25 18:14, 3年前 , 26F
欸寫py一定要確認環境欸
05/25 18:14, 26F

05/25 18:14, 3年前 , 27F
程式輸出requirement.txt
05/25 18:14, 27F

05/25 18:14, 3年前 , 28F
開venv然後source 後
05/25 18:14, 28F

05/25 18:14, 3年前 , 29F
pip3 install -r requirement.txt
05/25 18:14, 29F

05/26 01:12, 3年前 , 30F
3樓正解
05/26 01:12, 30F
文章代碼(AID): #1WfJ5uLS (Python)
文章代碼(AID): #1WfJ5uLS (Python)