目前python打包工具有多個,目前比較好用的爲pyinstaller,該工具可以支持在window和linux下使用。
在windows下,大小爲幾十K的源文件打包成exe文件,可能爲幾十兆,原因是把程序所引用的庫文件也一起打包在一起。
如下以windows系統爲例,分2個步驟,演示如何使用pyinstaller打包。
第1步:安裝pyinstaller
安裝pyinstaller之前首先必須有pip,如果還沒有安裝,請用度娘搜索“python安裝pip”,資源豐富,在此不再介紹,使用pip安裝pyinstaller的命令如下:
pip install pyinstaller
命令執行的截圖如下,直至安裝完畢,我僅截取了前面部分打印信息。
第2步:打包exe文件
如果是打包一個py文件,可以使用“pyinstaller -F 待打包文件名”進行打包,在命令執行完畢後,會在dist目錄下生成一個“待打包文件名.exe”的文件。如果不使用“-F”參數,則會在dist目錄下生成一個“待打包文件名”的文件夾,該文件夾下包含“待打包文件.exe”,但是要整個文件夾在一起才能正常工作,因爲這個文件夾的功能相當於使用“-F”時的一個“待打包文件.exe”。
使用加F參數打包成一個exe文件的操作截圖如下:
使用“F”強制打包參數,有時會導致軟件功能運行不正常,僅限於小的範例使用,如果項目有多個py文件,則建議別再使用“F”參數。
如果項目有多個文件,打包時可以把多個文件列出來,中間用空格隔開即可。
如果需要修改默認圖標爲指定圖標,則使用“-i 圖標文件名”來實現。
如下爲使用多個py文件和圖標的打包截圖。
pyinstaller的參數見下表,大家可以在需要時參考。
參數 | 參數全稱 | 參數說明 |
---|---|---|
-F |
–onefile |
打包成單個可執行文件,如果你的代碼都寫在一個.py文件,則可以使用,如果是多個.py文件,建議不要使用。 |
-D |
–onedir |
打包多個文件,在dist中生成很多依賴文件,適合以框架形式編寫工具代碼,該方式代碼較易於維護。 |
-K | –tk | 在部署時包含 TCL/TK。 |
-a | –ascii | 不包含編碼.在支持Unicode的python版本上默認包含所有的編碼。 |
-d | –debug |
產生debug版本的可執行文件 |
-w | –windowed,–noconsole | 使用Windows子系統執行.當程序啓動的時候不會打開命令行(僅對Windows有效) |
-c | –nowindowed,–console |
使用控制檯子系統執行(默認)(只對Windows有效) pyinstaller -c xxxx.py pyinstaller xxxx.py --console |
-s | –strip |
可執行文件和共享庫將run through strip。 注意Cygwin的strip可能使普通的win32 Dll無法使用 |
-X | –upx | 如果有UPX安裝(執行Configure.py時檢測),則會壓縮執行文件(Windows系統中的DLL也會) |
-o DIR | –out=DIR | 指定spec文件的生成目錄,如果沒有指定,而且當前目錄是PyInstaller的根目錄,會自動創建一個用於輸出(spec和生成的可執行文件)的目錄.如果沒有指定,而當前目錄不是PyInstaller的根目錄,則會輸出到當前的目錄下。 |
-p DIR | –path=DIR |
設置導入路徑(和使用PYTHONPATH效果相似)。 可以用路徑分割符(Windows使用分號,Linux使用冒號)分割,指定多個目錄.也可以使用多個-p參數來設置多個導入路徑,讓pyinstaller自己去找程序需要的資源 |
-i <FILE.ICO> | –icon=<FILE.ICO> | 將file.ico添加爲可執行文件的資源(只對Windows系統有效),改變程序的圖標 pyinstaller -i ico路徑 xxxxx.py |
–i <FILE.EXE, N> | –icon=<FILE.EXE, N> |
將file.exe的第n個圖標添加爲可執行文件的資源(只對Windows系統有效) |
-v FILE | –version=FILE | 將verfile作爲可執行文件的版本資源(只對Windows系統有效) |
-n NAME | –name=NAME |
可選的項目(產生的spec的)名字.如果省略,第一個腳本的主文件名將作爲spec的名字 |
如果你喜歡這篇文章,別忘了點贊和評論哦!