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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM