1. 程式人生 > >Pyinstaller打包生成可執行程式

Pyinstaller打包生成可執行程式

安裝:

pyinstaller [options] script [script ...] | specfile

使用

pyinstaller myscript.py
Pyinstaller將分析myscript.py檔案.然後將myscript.spec檔案寫入與py檔案同名的資料夾(myscript資料夾.)在該資料夾中建立build資料夾.在build資料夾中寫入log檔案和工作檔案.之後在myscript中建立dist資料夾,將myscript可執行檔案寫入到dist資料夾.
一般情況下pyinstaller後面只指定一個py檔案.如果指定了多個py檔案,所有的檔案都會被分析,並生成輸出檔案.但是所有的輸出檔案都會儲存到第一個py檔名所命名的輸出資料夾中.
Pyinstaller myscript.py myscript1.py myscript2.py


執行後,只生成一個myscript的資料夾中,裡面包含了對這三個檔案分析後生成的輸出檔案.
此外,還可以編輯myscript.spec檔案,編輯後就可以直接編譯spec檔案(而不是py檔案):
pyinstaller myscript.spec
如果py檔案不在當前路徑下,可以用下面命令編譯:
`pyinstaller options.. ~/path/to/script/myscript.py

Pyinstaller命令執行引數包括:
-F, --onefile Py程式碼只有一個檔案
-D, --onedir Py程式碼放在一個目錄中(預設是這個)
-K, --tk 包含TCL/TK
-d, --debug 生成debug模式的exe檔案
-w, --windowed, --noconsole 窗體exe檔案(WindowsOnly)
-c, --nowindowed, --console 控制檯exe檔案(WindowsOnly)
-X, --upx 使用upx壓縮exe檔案
-o DIR, --out=DIR 設定spec檔案輸出的目錄,預設在PyInstaller同目錄
-v FILE, --version=FILE 加入版本資訊檔案

特別要注意的是,當前的pyinstaller還不支援python3.6版本.雖然支援3.6的還沒有釋出,但是可以手動安裝https://github.com/pyinstalle... 下載zip後把PyInstaller提出來。刪掉python/Lib/site-packages/PyInstaller 資料夾,把解壓得到的PyInstaller放進去應該就OK了。#_#
(值得試一試!)

拿matplotlib官網的例子animate_decay成功生成了linux下的可執行檔案.
Pyinstaller -F animate_decay.py
在dist檔案下,可以找到animate_decay可執行檔案.執行:
./animate_decay

image.png
image.png