使用Pyinstall將PyQT5打包成.exe應用程式(包含圖示一同打包)
1.首先安裝pyinstaller。
1 pip install pyinstaller
2.PyQT5製作程式中使用到的ico等一系列圖示檔案,要先經過.qrc檔案轉成.py檔案後,才可跟隨打包檔案一同打包。
首先建立一個.qrc檔案,將圖片檔案全部寫進去,例如:
1 <RCC> 2 <qresource> 3 <file>111.ico</file> 4 <file>222.png</file> 5 <file>333.gif</file> 6 <file>444.jpg</file> 7</qresource> 8 </RCC>
然後,使用pyrcc5命令,將.qrc檔案轉換成.py檔案。
1 pyrcc5 resource.qrc -o resource_rc.py
轉換後的.py檔案如下:
3.需要在想要打包的***.py檔案中將圖片的路徑寫成這樣:
1 palette1 = QPalette() 2 pix1 = QPixmap(":/111.jpg") 3 palette1.setBrush(QPalette.Background, QBrush(pix1)) 4 demo.setPalette(palette1) 5 palette2 = QPalette()6 pix2 = QPixmap(":/222.jpg")
4.在將要打包的***.py檔案中將轉後的.py檔案import進去。
1 import resource_rc.py
5.1 單檔案打包
單檔案打包會將整個專案和相關依賴都打包進一個exe,此時一般只需要傳送exe檔案給別人即可正常執行。它的缺點是:啟動相對另一種打包方式更緩慢。
輸入命令:
1 pyinstaller -w -F -i '.\Plot.ico' main.py
引數解釋:
-F :單檔案打包
-w:不要console(取消類似於cmd的黑框框)
-i:後面接圖示地址(圖示一定要是標準的ico格式)
最後面接的是要打包的程式:main.py
執行命令成功後:
會生成三個資料夾和一個.spec檔案,.exe在dist資料夾中。
5.2單資料夾打包
只需要將dist下的資料夾生成壓縮包發給別人,別人解壓,找到執行的exe即可執行程式。 相比於單檔案打包命令, 只需將命令中的-F
換成-D即可。
1 pyinstaller -w -D -i '.\Plot.ico' main.py
打包完成後,同樣生成了三個資料夾和一個.spec檔案。 不同的是:在dist資料夾裡生成了一個資料夾,而.exe就在該資料夾內。這種型別的打包啟動速度相對比較快,但是不方便我們查詢。而且需要我們格外小心,不要誤刪或者移動了裡面的檔案。
PS:加 -F 雖然是生成了單個exe可執行檔案,看上去很清爽,但是這個命令它把所有的環境都整合在了一起,如果我們的程式比較大的話,啟動時就會非常慢(如果你的電腦效能一般的話,載入時間會更長)。因為它載入的資料都是靜態載入的,需要去封裝的包裡一個個的去查詢,所以速度變慢了。因此去掉 -F 之後,我們的啟動速度流暢無比,體驗效果也大大提升。去掉它之後,生成的dist檔案中你程式中要用到的環境都會被放在dist中,這個時候所用到的環境就變成了動態載入的,速度就跟你用程式碼啟動程式的速度是一樣的。