pyinstaller可以將python寫好的指令碼打包成exe檔案,方便windows使用者在沒有python環境下執行。這個程式完全跨平臺,包括Windows、Linux、Mac OS X等多個作業系統下執行。因為我用的是win7,以下直接使用windows打包講解,不同平臺上使用 PyInstaller方法是一樣的,它們支援的選項也是一樣的。

安裝Pyinstaller

Python預設不包含Pyinstaller模組,因此需要自行安裝

與安裝其它Python模組一樣,使用pip命令安裝即可,一條搞定:

pip install pyinstaller

執行上面命令,可以看到如下輸出結果,表示成功:

Successfully installed altgraph-0.17 pefile-2021.5.24 pyinstaller-4.5.1 pyinstaller....

使用Pyinstaller

Pyinstaller 工具使用的命令語法如下:

pyinstaller 選項 python原始檔

實際工作中常用的命令也就幾條:

## -D(預設選項),生成build、dist目錄,該選項生成一個目錄(包含多個檔案)來作為程式
pyinstall -D app.py ## 使用-F選項,在dist目錄下生成單獨的EXE檔案(在Mac生成的檔案沒有exe字尾)
pyinstaller -F app.py ## -w不顯示GUI視窗,-i指定圖示
pyinstaller -F -w -i app.ico app.py

如果想給軟體新增自己喜歡的圖示,這裡推薦以下方式

https://www.iconfont.cn/     			####免費的線上icon圖示網站
http://www.favicon-icon-generator.com/ ###免費線上生成1
http://www.ico51.cn/ ####免費線上生成2

常用引數說明

-h,--help 檢視該模組的幫助資訊
-F,-onefile 產生單個的可執行檔案
-D,--onedir 產生一個目錄(包含多個檔案)作為可執行程式
-a,--ascii 不包含 Unicode 字符集支援
-d,--debug 產生 debug 版本的可執行檔案
-w,--windowed,--noconsolc 指定程式執行時不顯示命令列視窗(僅對 Windows 有效)
-c,--nowindowed,--console 指定使用命令列視窗執行程式(僅對 Windows 有效)
-o DIR,--out=DIR 指定 spec 檔案的生成目錄。如果沒有指定,則預設使用當前目錄來生成 spec 檔案
-p DIR,--path=DIR 設定 Python 匯入模組的路徑(和設定 PYTHONPATH 環境變數的作用相似)。也可使用路徑分隔符(Windows 使用分號,Linux 使用冒號)來分隔多個路徑
-n NAME,--name=NAME 指定專案(產生的 spec)名字。如果省略該選項,那麼第一個指令碼的主檔名將作為 spec 的名字

以上只是Pyinstaller模組所支援的常用選項,如需瞭解更多可通過pyinstaller -h來檢視。

實踐一下

這裡簡單寫一個demo,我們來進行打包測試

為了不讓介面執行完立即退出,使用input()讓介面暫時停留

print("鋼鐵俠的知識庫")
input()

使用命令進行打包:

pyinstaller -F test.py

打包成功後會在dist下找到test.exe檔案,執行即可看到

以上即表示打包成功。

---- 鋼鐵 [email protected] 2021.08.07

參考鳴謝

http://c.biancheng.net/view/2690.html

https://blog.csdn.net/xiaomu_347/article/details/108761161

https://medium.com/pyladies-taiwan/python-將python打包成exe檔-32a4bacbe351