pyinstaller程序打包工具


PyInstaller是一個能將Python程序轉換成單個可執行文件的程序, 操作系統支持Windows, Linux, Mac OS X, Solaris和AIX。並且很多包都支持開箱即用,不依賴環境。

1.安裝Pyinstaller
sudo pip install pyinstaller

2.創建項目文件夾:hellow
3.創建入口腳本:main.py
4.生成.spec文件:sudo pyinstaller main.py # 什么參數都不帶就是單目錄模式,單目錄模式是pyinstaller的默認模式
5.根據.spec文件打包腳本:pyinstaller -F main.spec # 單文件模式打包腳本

注:生成.spec文件時有兩種模式:
模式一:單目錄模式
單目錄是 PyInstaller 的默認模式
sudo pyinstaller -D main.py也表示是但目錄模式
那么產生的.spec文件有以下幾個模塊:
a = Analysis(...)
pyz = PYZ(...)
exe = EXE(...)
coll = COLLECT(...)

上述各個步驟的說明如下:
Analysis: 分析腳本的引用關系,並將所有查找到的相關內容記錄在內部結構中,供后續步驟使用;
PYZ: 將所有 Python 腳本模塊編譯為對應的 .pyd 並打包;
EXE: 將打包后的 Python 模塊及其他文件一起生成可執行的文件結構;
COLLECT: 將引用到的附屬文件拷貝到生成目錄的對應位置。

 

模式二:單文件模式(單文件模式很多筆者不建議使用,因為有很多坑,暫時記着遇到坑在解決)
sudo pyinstaller -F main.py是單文件模式
那么產生的.spec文件有以下幾個模塊:
a = Analysis(...)
pyz = PYZ(...)
exe = EXE(...)
打包出來的exe文件以下模樣:

 

  1. -F, –onefile 產生一個文件用於部署 (參見XXXXX).
  2. -D, –onedir 產生一個目錄用於部署 (默認)
  3. -K, –tk 在部署時包含 TCL/TK
  4. -a, –ascii 不包含編碼.在支持Unicode的python版本上默認包含所有的編碼.
  5. -d, –debug 產生debug版本的可執行文件
  6. -w,–windowed,–noconsole 使用Windows子系統執行.當程序啟動的時候不會打開命令行(只對Windows有效)
  7. -c,–nowindowed,–console 使用控制台子系統執行(默認)(只對Windows有效)
  8. -s,–strip 可執行文件和共享庫將run through strip.注意Cygwin的strip往往使普通的win32 Dll無法使用.
  9. -X, –upx 如果有UPX安裝(執行Configure.py時檢測),會壓縮執行文件(Windows系統中的DLL也會)(參見note)
  10. -o DIR, –out=DIR 指定spec文件的生成目錄,如果沒有指定,而且當前目錄是PyInstaller的根目錄,會自動創建一個用於輸出(spec和生成的可執行文件)的目錄.如果沒有指定,而當前目錄不是PyInstaller的根目錄,則會輸出到當前的目錄下.
  11. -p DIR, –path=DIR 設置導入路徑(和使用PYTHONPATH效果相似).可以用路徑分割符(Windows使用分號,Linux使用冒號)分割,指定多個目錄.也可以使用多個-p參數來設置多個導入路徑
  12. –icon=<FILE.ICO> 將file.ico添加為可執行文件的資源(只對Windows系統有效)
  13. –icon=<FILE.EXE,N> 將file.exe的第n個圖標添加為可執行文件的資源(只對Windows系統有效)
  14. -v FILE, –version=FILE 將verfile作為可執行文件的版本資源(只對Windows系統有效)
  15. -n NAME, –name=NAME 可選的項目(產生的spec的)名字.如果省略,第一個腳本的主文件名將作為spec的名字

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM