手把手教你将pyqt程序打包成exe(1)
手把手教你將pyqt程序打包exe
文章目錄
- 手把手教你將pyqt程序打包exe
- 0x00 環境說明
- 0x01示例1(沒有其他外部資源文件)
- 1. 單文件打包
- 2. 單文件夾打包
0x00 環境說明
- window
- PyQt 5.13.1
- python 3.7
ps: PyQt 5.13.1 以下的請更新,否則打包后可能會出現缺少PyQt的dll等問題…
更新包(模塊)的命令:
更新到指定版本:
更新到最新版本:
pip install --upgrade PyQt5在更新PyQt5后,可能出現與PyQt其他相關包不兼容的問題(在cmd中更新完PyQt5后,如果出現了其他包不兼容,它會提示[incompatible]),此時需要把不兼容的包也更新一下。
下方是我的一些包的的版本作為版本更新的參考。
Tip:
對于多個py文件以及帶有關聯資源的要打包成exe,我個人覺得項目文件結構也很重要。
下面我將用兩個示例來演示。
0x01示例1(沒有其他外部資源文件)
項目文件結構和運行效果如下圖所示:
建議把要打包的項目復制一份出來打包
(可以把用不上的文件刪除)
項目文件結構越簡單,打包越不容易出錯~
找到項目文件夾,并整理一下。
按住shift 并單擊鼠標右鍵,即可在此處打開cmd
1. 單文件打包
單文件打包會將整個項目和相關依賴都打包進一個exe,
此時一般只需要發送exe文件給別人即可正常運行。
它的缺點是:啟動相對另一種打包方式更緩慢。
輸入命令:
參數解釋:
-F :單文件打包
-w:不要console(取消類似于cmd的黑框框)
-i:后面接圖標地址(圖標一定要是標準的ico格式)
我用的是:.\windowIco1.ico
最后面接的是要打包的程序:.\imageBrowser.py
運行命令成功后:
會生成三個文件夾和一個.spec文件,前兩個文件夾是沒用的(建議刪除~)。exe在dist文件夾中。
雙擊運行exe:
可以看的成功打包了~
如果雙擊后出現閃退(太快看不清楚錯誤原因),說明打包出現了問題。
為了知道具體原因:
需要在cmd中運行這個exe。
如果運行不成功,此時就會顯示錯誤原因。
錯誤原因很多,也不是固定的,根據提示去對癥下藥,更改好再次打包即可。
.spec文件簡單說明:
它是打包的配置腳本,在輸入打包命令后生成,在構建exe時會運行這個配置腳本。所以如果一次打包后,我們對結果不滿意,可以修改.spec文件,然后輸入:pyinstaller xxxx.spec 重新構建exe。
比如我們一開始忘記加ico了,或者需要更換ico,可以修改.spec中icon的文件路徑…(后面再詳細講.spec里的具體配置)
2. 單文件夾打包
只需要將dist下的文件夾生成壓縮包發給別人,別人解壓,找到運行的exe即可運行程序。
相比于單文件打包命令,
只是將單文件打包命令中的-F換成-D
同樣生成了三個文件夾和一個.spec文件,也是只有dist文件夾里的東西有用。
不同的是:在dist文件夾里生成了一個文件夾。
這種類型的打包,我們平時也十分常見。
它啟動速度相對比較快,但是不方便我們查找。而且需要我們格外小心,不要誤刪或者移動了里面的文件。
雙擊運行,也沒有問題:
出于篇幅原因,將示例2和.spec文件詳細介紹放在下一篇。
下一篇見~
----》手把手教你將pyqt程序打包成exe(2)
總結
以上是生活随笔為你收集整理的手把手教你将pyqt程序打包成exe(1)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 手把手教你pyqt中.qrc图片文件的编
- 下一篇: 手把手教你将pyqt程序打包成exe(2