Python專案打包釋出方法
目前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的名字 |
如果你喜歡這篇文章,別忘了點贊和評論哦!