將 Python 程式碼打包為可執行檔
Version 1: December 4, 2017
Version 2: December 5, 2017
最近正好要將一些以前寫的 Python 程式碼打包為可執行檔,這樣才能把程式拿到沒有安裝 Python 的電腦上執行。在請教 Google 之後,找到了3個目前最多人使用的方法:
- py2exe ( http://www.py2exe.org/ )
- cx_Freeze ( https://anthony-tuininga.github.io/cx_Freeze/ )
- PyInstaller ( http://www.pyinstaller.org/ )
cx_Freeze
- 打開指令界面,輸入並執行以下指令安裝軟體
python -m pip install cx_Freeze --upgrade - 新增一個測試用的資料夾,我是在桌面上新增名為 "cx_Freeze" 的資料夾,把想要轉檔的 Python 程式碼複製到這個資料夾中,我的檔案為 "gcd.py"
- 進到安裝 Python 的資料夾中,將 "cxfreeze-quickstart" 檔案複製到測試用的資料夾中。路徑可能為
(a) 安裝給所有使用者:"C:\Program Files\Python36\Scripts\"
(b) 安裝給特定使用者:"C:\Users\[username]\AppData\Local\Programs\Python\Python36\Scripts\" - 在指令界面中使用 cd 指令切換到測試用資料夾中,輸入並執行以下指令以產生轉檔用的 setup.py 檔
python cxfreeze-quickstart
依據畫面指示輸入適當的選項,執行完畢後會產生 setup.py - 輸入並執行以下指令以完成轉檔
python setup.py build - 進入 "build\exe.win-amd64-3.6\" 找到輸出的 .exe 檔,但在執行時出現以下的錯誤訊息 " ModuleNotFoundError: No module named 'codecs' " ,再度請教 Google 之後發現這似乎是 cx_Freeze 的 bug,已經有人向開發者回報問題,詳細情形可以參考 https://github.com/anthony-tuininga/cx_Freeze/issues/325