手把手教你將pyqt程式打包成exe 1

2021-10-05 11:14:44 字數 2560 閱讀 8039

ps:pyqt 5.13.1 以下的請更新,否則打包後可能會出現缺少pyqt的dll等問題…

更新包(模組)的命令:

更新到指定版本:

pip install pyqt5==5.13.1
更新到最新版本:

pip install --upgrade pyqt5
在更新pyqt5後,可能出現與pyqt其他相關包不相容的問題(在cmd中更新完pyqt5後,如果出現了其他包不相容,它會提示[incompatible]),此時需要把不相容的包也更新一下。

下方是我的一些包的的版本作為版本更新的參考。

對於多個py檔案以及帶有關聯資源的要打包成exe,我個人覺得專案檔案結構也很重要

下面我將用兩個示例來演示。

專案檔案結構和執行效果如下圖所示:

建議把要打包的專案複製乙份出來打包

(可以把用不上的檔案刪除)

專案檔案結構越簡單,打包越不容易出錯~

找到專案資料夾,並整理一下。

按住shift 並單擊滑鼠右鍵,即可在此處開啟cmd

單檔案打包會將整個專案和相關依賴都打包進乙個exe,

此時一般只需要傳送exe檔案給別人即可正常執行。

它的缺點是:啟動相對另一種打包方式更緩慢

輸入命令:

pyinstaller -f -w -i .\windowico1.ico .\imagebrowser.py
引數解釋:-f :單檔案打包

-w:不要console(取消類似於cmd的黑框框)

-i:後面接圖示位址(圖示一定要是標準的ico格式)

我用的是:.\windowico1.ico

最後面接的是要打包的程式:.\imagebrowser.py

執行命令成功後:

會生成三個資料夾和乙個.spec檔案,前兩個資料夾是沒用的(建議刪除~)。exe在dist資料夾中。

雙擊執行exe:

可以看的成功打包了~

如果雙擊後出現閃退(太快看不清楚錯誤原因),說明打包出現了問題。

為了知道具體原因:

需要在cmd中執行這個exe。

如果執行不成功,此時就會顯示錯誤原因。

錯誤原因很多,也不是固定的,根據提示去對症下藥,更改好再次打包即可。

.spec檔案簡單說明:

它是打包的配置指令碼,在輸入打包命令後生成,在構建exe時會執行這個配置指令碼。所以如果一次打包後,我們對結果不滿意,可以修改.spec檔案,然後輸入:pyinstaller ***x.spec重新構建exe。

比如我們一開始忘記加ico了,或者需要更換ico,可以修改.spec中icon的檔案路徑…(後面再詳細講.spec裡的具體配置)

只需要將dist下的資料夾生成壓縮包發給別人,別人解壓,找到執行的exe即可執行程式。

相比於單檔案打包命令,

只是將單檔案打包命令中的-f換成-d

同樣生成了三個資料夾和乙個.spec檔案,也是只有dist資料夾裡的東西有用。

不同的是:在dist資料夾裡生成了乙個資料夾。

----》手把手教你將pyqt程式打包成exe(2)

手把手教你寫Undo Redo程式

手把手教你寫 undo redo程式 undo redo 操作是很多具體編輯功能的軟體所不能缺少的。最典型兩種型別就是文字編輯和影象編輯軟體。然而它的實現在某種程度上來說也不是很簡單。我也廢話少說。要在程式中支援 undo redo 操作,就需要儲存一些必要的資訊,這個是眾所周知的。如果想支援無限級...

手把手教你寫Undo Redo程式

手把手教你寫undo redo程式 undo redo操作是很多具體編輯功能的軟體所不能缺少的。最典型兩種型別就是文字編輯和影象編輯軟體。然而它的實現在某種程度上來說也不是很簡單。我也廢話少說。要在程式中支援undo redo操作,就需要儲存一些必要的資訊,這個是眾所周知的。如果想支援無限級的und...

手把手教你OA選型

oa選型永遠是oa行業的重要焦點,在選型問題上困擾了很多客戶,雲全oa從這幾個方面教你如何選型。了解研發技術 技術是硬道理。只有過關的技術才會研發出過硬的產品。如果技術不過關,後期將會帶來一系列的問題。同時需要考慮技術的先進性。在現如今社會發展日新月異,今天還遙遙領先的管理模式也許明天就會被淘汰。所...