回覆列表
  • 1 # 使用者1605140587566

    Python 的 embedded 包 我剛查了一下,最新版 3.7.3 只要 6.7 MB。如果你沒有額外的依賴的話完全可以自己寫一個 c 檔案然後編譯到 exe。可以直接呼叫 Python.h 啟動直譯器傳入指令碼。這樣做有個問題,就是分發需要複製整個資料夾(因為要帶上 python 的庫)。

    另一個方法更簡單,直接 system ("python XXX.py") 這樣也可以強行生成 exe 就是感覺有點太偷懶了。

    這兩個方法都可以把 python 的呼叫轉為 exe,並且可以輕鬆控制在 10 MB 以下,但是需要分發 python 相關的依賴。這對於大部分程式是再正常不過的,但是對於習慣了複製一個 exe 的 installer 的使用者而言還是有點奇怪。這裡提供一個思路:把所有檔案打包到自解壓 exe 檔案裡,開啟時解壓到系統臨時路徑,然後直接在臨時資料夾內啟動。很多壓縮程式都可以生成自解壓壓縮包,你可以禁用各類嚮導,就幾乎不會有額外的空間,甚至因為壓縮過,還有可能更小一些。

    這樣做的好處不僅是把分發一個資料夾變成了分發單個 exe,而且還保證他是綠色程式,無需安裝,即插即用。你還可以自定義入口:這時候跟根本不需要用 c 來強行 system,你只需要寫一個 bat 指令碼呼叫 python XXX.py,然後把解壓的入口指向這個指令碼就萬事大吉。但是自解壓檔案有一個問題,就是每次啟動實質上都要先把檔案釋放到臨時路徑。這對於 10 MB 的檔案幾乎就是一瞬間,但是如果很在意的話還是用別的方法吧。

    當然如果你用了 pyqt 之類的就當我啥也沒說,qt 用 c++ 直接寫上百兆也不稀奇,更別說還套了層 python。這種情況自解壓勉強能壓到幾十 M,再要往下壓我看希望不大。平時釋出 Qt 程式常用的方法是之包含呼叫的模組,就可以省去不少空間,但是用了 pyqt 還要自己挑 qt 模組的話莫過於自找沒趣了。

  • 中秋節和大豐收的關聯?
  • 便利店、小超市的擺貨技巧?