1. 程式人生 > 其它 >使用Pyinstall將PyQT5打包成.exe應用程式(包含圖示一同打包)

使用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中,這個時候所用到的環境就變成了動態載入的,速度就跟你用程式碼啟動程式的速度是一樣的。