天天看點

Py之Pyinstaller:Python庫之Pyinstaller簡介、使用方法、安裝詳細攻略

Pyinstaller簡介

       PyInstaller是一個十分有用的第三方庫,它能夠在Windows、Linux、 Mac OS X 等作業系統下将 Python 源檔案打包,通過對源檔案打包, Python 程式可以在沒有安裝 Python 的環境中運作,也可以作為一個 獨立檔案友善傳遞和管理。

       PyInstaller是一個程式,當機(包)的Python程式為獨立的可執行檔案,在Windows,Linux,Mac OS X,FreeBSD,Solaris和AIX。其主要優點是在類似的工具,PyInstaller的作品與Python 2.7和3.3-3.6,建立小的可執行檔案由于透明壓縮,它是完全跨平台的,使用的作業系統支援加載動态庫,進而保證完全相容。對pyinstaller的主要目的是與第三方軟體相容的盒子。這意味着,與PyInstaller,所有需要的技巧使外部包已經內建在pyinstaller本身也無需使用者幹預。你不需要尋找技巧在維基應用自定義修改你的檔案或您的安裝腳本。作為一個例子,圖書館像PyQt,Django或matplotlib的完全支援,而不必處理插件或外部資料檔案手動。檢查我們支援的包的相容性清單以獲得詳細資訊。歡迎加入我們的行列!請檢視我們的路線圖檢查我們的計劃。同時使用報告表示歡迎:讓我們知道PyInstaller對你的作品有什麼問題,或者你在使用它的發現。檢查我們的項目使用pyinstaller清單。

Pyinstaller安裝

pip install pyinstaller

Py之Pyinstaller:Python庫之Pyinstaller簡介、使用方法、安裝詳細攻略

20210805更新

pip install -i

https://pypi.tuna.tsinghua.edu.cn/simple

pyinstaller

pip install --upgrade pyinstaller

Py之Pyinstaller:Python庫之Pyinstaller簡介、使用方法、安裝詳細攻略

Pyinstaller使用方法

1、使用方法

切記:跨平台或電腦,解壓後的exe檔案不能有中文路徑,有中文路徑會打不開exe檔案

T1、打包為多個檔案pyinstaller Search.py

T2、打包為單個檔案pyinstaller -F Search.py,

         例如pyinstaller -F Eric20180524py_gui_Iot.py --icon=Jasonniu.ico

2、參數含義  

-F 表示生成單個可執行檔案,-F指令,注意指令區分大小寫。這裡是大寫。使用-F指令可以把應用打包成一個獨立的exe檔案,否則是一個帶各種dll和依賴檔案的檔案夾

-w 表示去掉控制台視窗,這在GUI界面時非常有用。不過如果是指令行程式的話那就把這個選項删除吧! -w指令,直接釋出的exe應用帶指令行調試視窗,在指令内加入-w指令可以屏蔽,例如pyinstaller -F -w Search.py

-p 表示你自己自定義需要加載的類路徑,一般情況下用不到 ,-p指令,這個指令後面可以增加pyinstaller搜尋子產品的路徑。因為應用打包涉及的子產品很多。這裡可以自己添加路徑。不過經過筆者測試,site-packages目錄下都是可以被識别的,不需要再手動添加。-p參數是添加的pyinstaller打包程式時的掃描路徑,pyinstaller的掃描路徑有可能不完整,造成打包後的可執行檔案運作時出現“找不到指定的子產品”的錯誤。

-i 表示可執行檔案的圖示,例如:pyinstaller -F --icon=my.ico xxx.py。

或者pyinstaller -F -w -i F:\\File_Python\\Jasonniu.ico Search.py

      執行Pyinstaller指令後,在目前目錄下生成兩個檔案夾build和dist,一個name.spec檔案  在build檔案夾下有一個warnname.txt檔案,這裡面會有關于缺少子產品的日志  在dist/檔案夾下有可執行檔案name.exe

(1)、pyinstaller打包多個py檔案和去除cmd黑框:pyinstaller.exe -F 路徑\檔案名.py空格路徑\檔案名.py空格--noconsole

pyinstaller name.py --noconsole

(2)、隐藏子產品:pyinstaller -F CV_Object.py --icon=Jasonniu.ico --hidden-import=yolo,PyQt5.sip,h5py

(3)、打開生成的CV_Object.spec檔案,直接拖入dos内即可(或pyinstaller "F:\Program Files\Python\Python36\Lib\site-packages\keras_*****\keras-*****\CV_Object.spec"),以後修改CV_Object.spec檔案的參數即可!!

# -*- mode: python -*-

block_cipher = None

a = Analysis(['CV_Object.py'],

            pathex=['F:\\Program Files\\Python\\Python36\\Lib\\site-packages\\keras_*****\\keras-*****'],

            binaries=[],

            datas=[],

            hiddenimports=['*****','model'],

            hookspath=[],

            runtime_hooks=[],

            excludes=[],

            win_no_prefer_redirects=False,

            win_private_assemblies=False,

            cipher=block_cipher)

pyz = PYZ(a.pure, a.zipped_data,

exe = EXE(pyz,

         a.scripts,

         a.binaries,

         a.zipfiles,

         a.datas,

         name='CV_Object',

         debug=False,

         strip=False,

         upx=True,

         runtime_tmpdir=None,

         console=True , icon='Jasonniu.ico')

大功告成!