標籤:wxpython pyinstaller模組打包exe程式
一、PyInstaller說明
pyinstaller是一個第三方模組,託管在github上,它是一個把python指令碼及其依賴的模組,打包成一個獨立的可執行程式,使其能運行在沒有安裝python環境的機器上。支援Linux/unix /mac 及windows,但注意的是,在什麼平台上打包,就會產生對應平台可執行檔獨立程式,如在windows上打包會產生exe的可執行檔。本文所示範的就是在windows平台使用pyinstaller打包一個簡單的exe程式。
二、原始指令碼內容如下:
1、產生一注雙色球代碼如下:
def CaiSeQiu(num=1): num = int(num) p = 1 with open("tmp",‘w‘) as f: while p <= num: LAN = [] L = [] while len(L) <= 5: L = LAN.append(random.randrange(1, 34)) L = sorted(set(LAN)) BLUE = random.randrange(1, 17) print("紅球: %s, 藍球: %s") % (L, BLUE) p += 1if __name__ == "__main__": CaiSeQiu()
執行會產生如下:
紅球: [10, 13, 20, 24, 28, 29], 藍球: 9
三、使用PyInstaller打包成可執行檔exe程式
1、環境
python2.7.13 ,為了打包成有圖形化的可執行程式需要安裝wxpython模組,pip install wxpython
帶有圖形化的可執行程式 產生雙色球.
2、代碼如下:
#!/usr/bin/python# -*- coding=utf-8 -*-# by author San at 2016-03-03import randomimport sysimport wx#清除產生的雙色球def onclear(event): content.SetValue(‘‘) def CaiSeQiu(event,num=1): num = int(num) p = 1 with open("tmp",‘w‘) as f: while p <= num: LAN = [] L = [] while len(L) <= 5: L = LAN.append(random.randrange(1, 34)) L = sorted(set(LAN)) BLUE = random.randrange(1, 17) content.SetValue("紅球: %s, 藍球: %s" % (L, BLUE)) p += 1app = wx.App()frame = wx.Frame(None, title="彩色球產生器v1.0", size=(420, 350))panel = wx.Panel(frame)sBox = wx.BoxSizer() vBox = wx.BoxSizer(wx.VERTICAL) content = wx.TextCtrl(panel)btn1 = wx.Button(panel, label="產生")btn2 = wx.Button(panel, label="清除")sBox.Add(btn1, proportion=1, flag=wx.EXPAND | wx.ALL, border=5)sBox.Add(btn2, proportion=1, flag=wx.EXPAND | wx.ALL, border=5)vBox.Add(sBox, proportion=1, flag=wx.EXPAND | wx.ALL, border=5)vBox.Add(content, proportion=5, flag=wx.EXPAND | wx.ALL, border=5)btn1.Bind(wx.EVT_BUTTON, CaiSeQiu)btn2.Bind(wx.EVT_BUTTON, onclear)panel.SetSizer(vBox)frame.Show()app.MainLoop()
儲存為CaiseQiu.pyw 雙擊執行
650) this.width=650;" title="1.png" src="https://s3.51cto.com/wyfs02/M02/9B/C8/wKiom1lnFTGwfRQSAAAmEbRXUUM699.png-wh_500x0-wm_3-wmp_4-s_792384647.png" alt="wKiom1lnFTGwfRQSAAAmEbRXUUM699.png-wh_50" />
說明:這個pyw尾碼的python指令碼需要要安裝有python的系統上才能執行,但是沒法在沒有安裝python環境的系統執行,因此需要pyinstaller打包成exe檔案
3、pyinstaller打包成caiseqiu.exe
將caiseqiu.pyw放到一個非英文目錄(c:\mypythonexe\)下,開啟cmd -->cd c:\mypythonexe
650) this.width=650;" title="2.png" src="https://s1.51cto.com/wyfs02/M02/9B/C8/wKiom1lnF5iz4Q02AAAWLucZE4w637.png" alt="wKiom1lnF5iz4Q02AAAWLucZE4w637.png" />
執行:pyinstaller -F -w caiseqiu.pyw 此時會出現類似 如下資訊
3845 INFO: Building COLLECT out00-COLLECT.toc completed successfully.
表示打包成功;此時目錄下有如下資訊
c:\MyPythonexe 的目錄
2017/07/13 14:46 <DIR> .
2017/07/13 14:46 <DIR> ..
2017/07/13 14:46 <DIR> build
2017/07/12 18:32 1,264 caiseqiu.pyw
2017/07/13 14:46 873 caiseqiu.spec
2017/07/13 14:46 <DIR> dist
2 個檔案 2,137 位元組
4 個目錄 4,577,239,040 可用位元組
在dist目錄下就會有一個caiseqiu.exe 如下:
650) this.width=650;" title="3.png" src="https://s5.51cto.com/wyfs02/M01/9B/C8/wKiom1lnGSayX5lnAABSzeaH-Cs777.png-wh_500x0-wm_3-wmp_4-s_4186271853.png" alt="wKiom1lnGSayX5lnAABSzeaH-Cs777.png-wh_50" />
雙擊執行如下:
650) this.width=650;" title="4.png" src="https://s4.51cto.com/wyfs02/M02/9B/C8/wKiom1lnGTLhEj7vAAAvCBrADBI725.png-wh_500x0-wm_3-wmp_4-s_2368087414.png" alt="wKiom1lnGTLhEj7vAAAvCBrADBI725.png-wh_50" />
點產生即產生一柱,清除功能。
到這裡我們使用wxpython PyInstaller模組完成windows平台 可執行exe程式打包。
本文出自 “學無止境,學以致用” 部落格,請務必保留此出處http://dyc2005.blog.51cto.com/270872/1947108
PyInstaller將python指令碼打包成exe可執行程式