1. 程式人生 > >Python3指令碼在Windows10下生成單個EXE檔案!

Python3指令碼在Windows10下生成單個EXE檔案!

Python3指令碼在Windows10下生成單個EXE檔案!

 

本文環境配置:

系統=>windows10:64位

語言=>Python:3.7.1

第三方庫 pywin32:224 PyInstaller:3.4 PyQT5:5.11.3

Python3指令碼在Windows10下生成單個EXE檔案!

 

工具=>PyCharm:2018.3.1

1、安裝Python

官網下載對應系統位數的版本:

使用pip命令安裝第三方庫:

Python3指令碼在Windows10下生成單個EXE檔案!

 

 

pip install pywin32
pip install PyInstaller
pip install PyQT5

 

2、安裝PyCharm

首先編寫需要轉換exe的Python程式碼,使用PyQT5做一個簡單的GUI

建立一個窗體

import sys
from PyQt5.Qt import *
app = QApplication(sys.argv) 
# 例項物件
# 窗體大小
window = QWidget()
window.resize(500, 500)
window.setWindowTitle('測試')
window.move(400, 200)
# 顯示窗體
window.show()
sys.exit(app.exec_())

在窗體上新增一個標籤

# 標籤
label = QLabel(window)
label.setText('測試顯示')
label.move(250, 100)

定義兩個槽函式,功能是修改標籤上的內容

# 槽函式1
def btn_Old():
 label.setText('測試顯示')
# 槽函式2
def btn_New():
 label.setText('點我幹啥')

在窗體上新增兩個按鈕,並連結槽函式

# 按鈕1
btn1 = QPushButton(window)
btn1.setText('恢復顯示')
btn1.move(200, 200)
btn1.clicked.connect(btn_Old) 
# 訊號與槽
# 按鈕2
btn1 = QPushButton(window)
btn1.setText('修改顯示')
btn1.move(300, 200)
btn1.clicked.connect(btn_New) 
# 訊號與槽

一個簡單的GUI搞定,完整程式碼如下,程式碼並未做優化,只是測試用。檔名稱定義為test.py

Python3指令碼在Windows10下生成單個EXE檔案!

 

 

轉換EXE

開啟命令視窗,切換到test.py檔案的路徑下

Python3指令碼在Windows10下生成單個EXE檔案!

 

 

輸入命令

pyinstaller -F -w test.py 

Python3指令碼在Windows10下生成單個EXE檔案!

 

 

開始執行程式碼,執行完成之後,在text.py檔案的目錄下有一個dist資料夾, 裡面就有生成的EXE檔案

Python3指令碼在Windows10下生成單個EXE檔案!

 

 

搞定,直接雙擊執行編寫好的GUI程式。

PyInstaller部分引數的含義

-F 表示生成單個可執行檔案

-w 表示去掉控制檯視窗,這在GUI介面時非常有用。不過如果是命令列程式的話那就把這個選項刪除吧!

-i 表示可執行檔案的圖示

PyInstaller注意點

1、有一些程式碼需要呼叫一些圖片和資原始檔的,這是不會自動匯入的,需要你自己手動複製進去才行。不然exe檔案執行時命令視窗會報錯找不到這個檔案。

2、當你使用錯誤的引數去打包或者打包到一半中斷,等等此類執行到一半沒了的情況。會導致你原來的py檔案變成一個0KB的空檔案。裡面的程式碼會全部消失!!!所以以後需要有個良好的習慣,就是複製一份程式碼出來,用這個副本進行打包。並且引數出錯,或者打錯了導致失敗時,檢查下副本檔案的py檔案是否還存在再繼續重新打包,不然打出來的就是空的檔案,自然一直閃退,因為壓根沒內容。

3、寫程式碼的時候應當有個良好的習慣,用什麼函式導什麼函式,不要上來import整個庫,最後你會發現你一個100KB的程式碼打包出來有500MB,全是庫,簡直無語

從今往後,專心Python