python包:pyinstaller
阿新 • • 發佈:2020-11-17
包簡介
pyinstaller用來將python程式碼打包成可執行的
exe
檔案
安裝
pip install pyinstaller
或
pip install https://github.com/pyinstaller/pyinstaller/archive/develop.zip
使用
比如有這麼一個目錄,主程式為main.py(main.py裡呼叫了pk1和pk2裡的模組)
打包
pyinstaller -F main.py
- 可選引數
引數 | 說明 |
---|---|
-F, --onefile | 打包成單個exe檔案 |
-D, --onedir | 打包成多個檔案,這種方式更易於維護 |
-w, --windowed, --noconsole | 使用Windows子系統執行,當程式啟動時不會開啟命令列視窗 |
-i, --icon=ICOFILE | 給可執行檔案新增一個ico格式的圖示 |
--add-binary DLL;DLL | 新增程式依賴的擴充套件,以分號隔開 |
-K, --tk | 在部署時包含TCL/TK |
-a, --ascii | 不包含編碼,在支援Unicode的python版本上預設包含所有的編碼 |
-d, debug | 產生debug版本的可執行檔案 |
-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自己去找程式需要的資源 |
-v FILE, –version=FILE | 將verfile作為可執行檔案的版本資源(只對Windows系統有效) |
-n NAME, –name=NAME | 可選的專案(產生的spec的)名字.如果省略,第一個指令碼的主檔名將作為spec的名字 |
個人使用時遇到的問題
- 將使用opencv-python庫的程式打包後,執行exe檔案VideoCapture無法讀取視訊,原因是打包時缺少opencv_ffmpeg341_64.dll(341為opencv-python版本)
解決辦法:
pyinstaller -F --add-binary PATH/TO/opencv_ffmpeg344_64.dll;PATH/TO/openh264-1.7.0-win64.dll. demo.py