PyInstaller將python指令碼打包成exe可執行程式

來源:互聯網
上載者:User

標籤: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可執行程式

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.