exe打包工具_pyqt5快速上手基础篇12-使用Pyinstaller打包应用程序
前言
本節(jié)我們學(xué)習(xí)如何使用Pyinstaller打包pyqt5應(yīng)用程序,pyqt5的打包要比之前文章中講述的tkinter的打包稍微復(fù)雜點(diǎn),主要區(qū)別在于pyqt5打包需要導(dǎo)入Qt相關(guān)庫,筆者開始打包時(shí)候遇到錯(cuò)誤,網(wǎng)上眾說紛紜,有說把python3版本調(diào)到python3.5.2的,也會(huì)有說pyinstaller3.6安裝包版本有問題,需要用源碼安裝......
一、基礎(chǔ)知識(shí)
1.pyinstaller簡介
PyInstaller的主要目標(biāo)是開箱即用地與第三方軟件包兼容。這意味著,使用PyInstaller,使外部軟件包正常工作所需的所有技巧已經(jīng)集成在PyInstaller本身中,因此不需要用戶干預(yù)。
和其他打包工具相比,PyInstaller的主要優(yōu)勢(shì)在于PyInstaller可與Python 2.7和3.5-3.7一起使用,由于透明壓縮,它可以構(gòu)建較小的可執(zhí)行文件,它是完全多平臺(tái)的,并且使用OS支持來加載動(dòng)態(tài)庫,從而確保完全兼容。
1.pyinstaller安裝
安裝命令:
pip3 installer pyinstaller查看python3版本號(hào),輸入:
python3?--version可以看到,本文我們使用的python3版本是3.7.6,為了避免發(fā)生異常,建議大家和我保持一致,或者盡量使用3.5.0 3.5.2版本。
二、實(shí)例
1. 打開第一節(jié)1-setup代碼
打開第一節(jié)代碼,然后輸入python3 run.py,運(yùn)行程序
本節(jié)我們要做的就是使用pyinstaller打包python文件為exe可執(zhí)行程序。
2. 變量 frozen 注入到 sys
import sys, osif hasattr(sys, 'frozen'): os.environ['PATH'] = sys._MEIPASS + ";" + os.environ['PATH']這段代碼和cx_freeze庫相關(guān),在 windows 下,cx_freeze庫用于將程序打包成 exe,會(huì)將一個(gè)變量 frozen 注入到 sys 中。
將其添加到入口文件的最上方即可
3. 打包成一個(gè)帶調(diào)試窗口的exe
輸入打包命令:
pyinstaller -F run.py可以看到在dist目錄下生成了run.exe可執(zhí)行程序雙擊執(zhí)行,可以看到會(huì)有一個(gè)黑色的背景框,這個(gè)類似windows下CMD窗口,可以顯示print等打印出來的調(diào)試信息
4. 打包成一個(gè)不帶調(diào)試窗口的exe
輸入打包命令:
pyinstaller -F -w run.py同樣會(huì)在dist目錄下生成run.exe文件,雙擊執(zhí)行
5. 打包成帶圖標(biāo)的exe
可以看到上述兩種情況打包,程序圖標(biāo)都是系統(tǒng)默認(rèn)的圖標(biāo),這次我們?yōu)閞un.exe加個(gè)自己的皮膚,需要?jiǎng)?chuàng)建一個(gè)icons文件夾,放進(jìn)去自定義.ico圖像,我這里是icon.ico
輸入打包命令:
pyinstaller -F -w run.py -i D:/study/python/pyqt/pyqt5/demos/1-setup/icons/icon.ico可以看到dist下的run.exe仍然是默認(rèn)皮膚,這個(gè)是系統(tǒng)的問題,將run.exe拖到桌面,可以看到皮膚已經(jīng)更新成功了。
三、結(jié)語
(1) 調(diào)試
如果打包后程序提示仍然是無法運(yùn)行,可以嘗試在CMD命令窗口下直接運(yùn)行程序,如果運(yùn)行失敗,控制臺(tái)會(huì)打印提示信息,我之前遇到過用法錯(cuò)誤導(dǎo)致運(yùn)行不起來的問題,通過這種方式可以查看到具體的錯(cuò)誤提示,修改后重新打包即可。
作者:小驛
寄語:如果決定要出發(fā),就不要把時(shí)間浪費(fèi)在猶豫上!
總結(jié)
以上是生活随笔為你收集整理的exe打包工具_pyqt5快速上手基础篇12-使用Pyinstaller打包应用程序的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: windows nginx站点分割日志_
- 下一篇: vs2017运行显示系统找不到指定的文件