Python 打包exe檔案
===
## 參考資料
+ [資料一](https://medium.com/pyladies-taiwan/python-%E5%B0%87python%E6%89%93%E5%8C%85%E6%88%90exe%E6%AA%94-32a4bacbe351)
+ [資料二](https://ithelp.ithome.com.tw/articles/10199980)
## 常用參數介紹
+ pyinstaller -h 來查看參數
+ -F 打包成一個exe文件
+ –icon=圖標路徑
+ -w 使用視窗,無控制台
+ -c 使用控制台,無視窗
+ -D 創建一個目錄,包含exe以及其他一些依賴性文件
## 打包範例
1. 打包指令(檔案為根目錄底下 hello.py):
+ Windows使用者,會在命令框看到目前進度。
```gherkin =
pyinstaller -F .\hello.py
```
+ mac 使用者的因為command line 是正斜線。
```gherkin =
pyinstaller -F ./hello.py
```
2. 透過進度發現這個套件在執行命令之後:
+ 會先建立一個 hello.spec
+ 建立「build」 資料夾
+ 建立 log紀錄檔與工作檔案於資料夾 build 中
+ 建立 「dist 」資料夾
+ 建立執行檔(.exe)在 「dist」 資料夾
3. 進入「dist」資料夾可看見執行檔(.exe)。
## venv環境打包
- 優點:可以大幅度縮減檔案大小(約可縮減80%,但最少仍須10MB)
- 缺點:在虛擬環境下須重新安裝程式碼所需的套件
- 建置流程:
1.建立虛擬環境資料夾
python -m venv venv
2.進入虛擬環境
.\venv\Scripts\activate.bat
3.安裝需要的套件 (包含pyinstaller)
pip install pyinstaller
4.打包成exe
pyinstaller -F 要打包的.py
5.離開虛擬環境
deactivitate
## 注意事項
+ 何謂__pycache__ ?
+ 放編譯時需要的檔案用的檔案。
+ 編譯不出現的方法:利用 ***python -B foo.py*** 使__ pycache__資料夾不出現。
+ 執行檔案可在win8/win10,64位元的電腦運行,但win7 x64和其餘所有32位失敗,會提示不兼容,若要能32位元與64位元皆可運行,就要在Python 32位元的環境下編譯PyInstaller打包exe,才能在32位元與64位元成功。
###### tags: `python` `exe` `venv`