1. 簡介
python 程序編寫完之後需要進行打包成exe發佈,不暴露源碼,目前主要打包的工具有三種:
1) PyInstaller(推薦)
2) cx_Freeze
3) py2exe
這裏,我主要介紹PyInstaller的安裝使用。
2. PyInstaller
1) 離線安裝:
PyInstaller下載,只需解壓到位置即可(建議和python放在相同的目錄下)。
pywin32下載,雙擊pywin32-221.win-amd64-py3.5.exe安裝,注意安裝的時候會自動檢測之前安裝的Python,下一步安裝。
在CMD命令行進入Python安裝目錄下的Scripts目錄並執行命令:python pywin32_postinstall.py -install
在CMD命令行中進入yInstaller解壓目錄下,然後執行:python setup.py install
2) 在線安裝:
管理員身份打開cmd窗口,執行命令: pip install pyinstaller
安裝完成。
3. 打包樣例
編譯條件指令介紹
-F, --onefile Py代碼只有一個文件
-D, --onedir Py代碼放在一個目錄中(默認是這個)
-K, --tk 包含TCL/TK
-d, --debug 生成debug模式的exe文件
-w, --windowed, --noconsole 窗體exe文件(Windows Only)
-c, --nowindowed, --console 控制檯exe文件(Windows Only)
-X, --upx 使用upx壓縮exe文件
-o DIR, --out=DIR 設置spec文件輸出的目錄,默認在PyInstaller同目錄
--icon=FILE.ICO 加入圖標(Windows Only)
-v FILE, --version=FILE 加入版本信息文件
1) 這裏,我需要打包的py文件:
install.py(主程序入口文件)、env.py、installPKG.py、installDNPS.py、start.py
多個.py文件和多個打包命令格式如下:
pyinstaller [主文件] -p [其他文件1] -p [其他文件2] --hidden-import [自建模塊1] --hidden-import [自建模塊2]
-w 去除調試黑框
-i xxx.ico 添加ico圖標,在當前文件夾下就不用加目錄
2) 根據上面的文件結構打包命令如下:
pyinstaller -F install.py -p env.py -p installPKG.py -p installDNPS.py -p start.py
爲了方便,這裏把打包命令編寫爲bat腳本:
@echo off
echo 當前批處理文件運行路徑:%~dp0
start cmd /k pyinstaller -F install.py -p env.py -p installPKG.py -p installDNPS.py -p start.py --hidden-import clip --hidden-import data
3) 執行打包腳本package.bat,在dist目錄下生成exe
4) 脫離python環境運行install.exe