日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

手把手教你将pyqt程序打包成exe(1)

發布時間:2024/9/3 编程问答 55 豆豆
生活随笔 收集整理的這篇文章主要介紹了 手把手教你将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 PyQt5==5.13.1

更新到最新版本:

pip install --upgrade PyQt5

在更新PyQt5后,可能出現與PyQt其他相關包不兼容的問題(在cmd中更新完PyQt5后,如果出現了其他包不兼容,它會提示[incompatible]),此時需要把不兼容的包也更新一下。
下方是我的一些包的的版本作為版本更新的參考。


Tip:
對于多個py文件以及帶有關聯資源的要打包成exe,我個人覺得項目文件結構也很重要
下面我將用兩個示例來演示。

0x01示例1(沒有其他外部資源文件)

項目文件結構和運行效果如下圖所示:
建議把要打包的項目復制一份出來打包
(可以把用不上的文件刪除)
項目文件結構越簡單,打包越不容易出錯~

找到項目文件夾,并整理一下。

按住shift 并單擊鼠標右鍵,即可在此處打開cmd

1. 單文件打包

單文件打包會將整個項目和相關依賴都打包進一個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 xxxx.spec 重新構建exe。
比如我們一開始忘記加ico了,或者需要更換ico,可以修改.spec中icon的文件路徑…(后面再詳細講.spec里的具體配置)

2. 單文件夾打包

只需要將dist下的文件夾生成壓縮包發給別人,別人解壓,找到運行的exe即可運行程序。
相比于單文件打包命令,
只是將單文件打包命令中的-F換成-D

pyinstaller -D -w -i .\windowIco1.ico .\imageBrowser.py


同樣生成了三個文件夾和一個.spec文件,也是只有dist文件夾里的東西有用。
不同的是:在dist文件夾里生成了一個文件夾。


這種類型的打包,我們平時也十分常見。
它啟動速度相對比較快,但是不方便我們查找。而且需要我們格外小心,不要誤刪或者移動了里面的文件。

雙擊運行,也沒有問題:

出于篇幅原因,將示例2和.spec文件詳細介紹放在下一篇。

下一篇見~

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

總結

以上是生活随笔為你收集整理的手把手教你将pyqt程序打包成exe(1)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。