PyInstaller支持Python 2.7和Python 3.3+。能夠在Windows、Mac OS X和Linux上使用,可是並非跨平臺的,而是說你要是但願打包成.exe文件,須要在Windows系統上運行PyInstaller進行打包工做;打包成mac app,須要在Mac OS上使用。linux
安裝:pip/pip3 install pyinstaller
更新:pip/pip3 install --upgrade pyinstalle
2.Windows上運行PyInstaller還須要PyWin32或者pypiwin32,其中pypiwin32在你安裝PyInstaller的時候會自動安裝。app
PyInstaller 工具的命令語法以下:函數
pyinstaller 選項 Python 源文件
無論這個 Python 應用是單文件的應用,仍是多文件的應用,只要在使用 pyinstaller 命令時編譯做爲程序入口的 Python 程序便可。工具
PyInstaller工具是跨平臺的,它既能夠在 Windows平臺上使用,也能夠在 Mac OS X 平臺上運行。在不一樣的平臺上使用 PyInstaller 工具的方法是同樣的,它們支持的選項也是同樣的。ui
下面先建立一個 app 目錄,在該目錄下建立一個 app.py 文件,文件中包含以下代碼:spa
from say_hello import * def main(): print('程序開始執行') print(say_hello('孫悟空')) # 增長調用main()函數 if __name__ == '__main__': main()
接下來使用命令行工具進入到此 app 目錄下,執行以下命令:操作系統
pyinstaller -F app.py
執行上面命令,將看到詳細的生成過程。當生成完成後,將會在此 app 目錄下看到多了一個 dist 目錄,並在該目錄下看到有一個 app.exe 文件,這就是使用 PyInstaller 工具生成的 EXE 程序。
在命令行窗口中進入 dist 目錄下,在該目錄執行 app.exe ,將會看到該程序生成以下輸出結果:.net
程序開始執行 孫悟空,您好!
因爲該程序沒有圖形用戶界面,所以若是讀者試圖經過雙擊來運行該程序,則只能看到程序窗口一閃就消失了,這樣將沒法看到該程序的輸出結果。
在上面命令中使用了-F 選項,該選項指定生成單獨的 EXE 文件,所以,在 dist 目錄下生成了一個單獨的大約爲 6MB 的 app.exe 文件(在 Mac OS X 平臺上生成的文件就叫 app,沒有後綴);與 -F 選項對應的是 -D 選項(默認選項),該選項指定生成一個目錄(包含多個文件)來做爲程序。
下面先將 PyInstaller 工具在 app 目錄下生成的 build、dist 目錄刪除,並將 app.spec 文件也刪除,而後使用以下命令來生成 EXE 文件。命令行
pyinstaller -D app.py
執行上面命令,將看到詳細的生成過程。當生成完成後,將會在 app 目錄下看到多了一個 dist 目錄,並在該目錄下看到有一個 app 子目錄,在該子目錄下包含了大量 .dll 文件和 .pyz 文件,它們都是 app.exe 程序的支撐文件。在命令行窗口中運行該 app.exe 程序,一樣能夠看到與前一個 app.exe 程序相同的輸出結果。
PyInstaller 不只支持 -F、-D 選項,並且也支持如表 1 所示的經常使用選項。
debug
-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 的名字 |
在表 1 中列出的只是 PyInstaller 模塊所支持的經常使用選項,若是須要了解 PyInstaller 選項的詳細信息,則可經過 pyinstaller -h 來查看。