Situation

之前用 Python 寫爬蟲自動填寫公司表單,最後的關鍵問題反而是

“Python 要怎麼產生執行檔(.exe)?”


搜尋結果大多數都推薦 pyinstaller。快速掃了 api,感覺也確實還滿簡單的。
以下說明如何在 PyCharm 安裝和使用 pyinstaller。先前提一下我使用的是 PyCharm,如果你的 IDE 不同也許對你沒有太大幫助喔!


Action

A.安裝 pyinstaller

直接在 PyCharm 的 Python Packages 視窗輸入 pyinstaller,找到 pyinstaller 後再點擊右邊安裝按鈕即可


B.使用 pyinstaller 打包並產出 .exe 檔

b1.確認 pyinstaller 的安裝位置 : 如果你按照”A.安裝 pyinstaller “來操作,pyinstaller 的安裝位置就在 A.步驟的專案目錄\venv\Scripts,你應該可以在目錄中看到 pyinstaller.exe,把這個路徑複製起來。我的路徑如下

G:\Projects\PycharmProjects\pyinstaller\venv\Scripts\pyinstaller.exe

b2.開啟 cmd 並移動到你想打包的專案目錄 : 我的打包專案路徑如下

G:\Projects\PycharmProjects\example

b3.使用打包指令 : 在 cmd 貼上 b1.複製的路徑後輸入 -F,再加上打包專案的 .py(通常是專案的入口點,我的是 main.py)

G:\Projects\PycharmProjects\pyinstaller\venv\Scripts\pyinstaller.exe -F .\main.py

b4.等待打包完成 : 按下 enter 後,會出現打包檔案的提示訊息,完成後在G:\Projects\PycharmProjects\example 目錄中會出現兩個資料夾分別為 build 和 dist,在dist資料夾應該就會出現 main.exe,這就是打包完成後的產出囉!

Note : 打包後的 .exe(main.exe)在一般的情況下可以放到其他目錄執行獨立執行。

但若打包專案本身需要依賴某些模組(.exe)才能執行,就必須把被依賴的模組一併移動到打包後的 .exe 相同目錄,否則執行可能會出錯。

像我的爬蟲專案需要依賴 chromedriver.exe,也必須把 chromedriver.exe 也一併移到 main.exe 的相同目錄


Result

成功打包並產出 main.exe,main.exe 可執行,但必須搭配 chromedriver.exe。(應該可以靠其他設定來完成)