去年十一月換了新公司后,一直沒閑着,馬不停蹄地接不同的需求,一個版本一個版本的迭代,也沒時間研究python了。十一休假歸來,某日,老婆問金融量化需要學python嗎?並分享了一個公眾號文章,內容是吹噓python有多神通廣大,最后就是網課多少錢的推銷路線。給老婆誇口,有時間了教她敲代碼,解決她日常分析報告中那些數據的搜集工作。
昨天花了點時間,看了去年的python學習筆記,算是簡單基礎的復習。接着去年的內容往后面更新。之前有一個同事玩go語言,有一次拜托他幫寫了一個從excel讀數據curl發post請求的工具,exe文件,着實好用,同為腳本語言,python實現起來應該也簡單,不久后,我會用python來實現這段邏輯。言歸正傳,從基礎做起。首先python如何生成exe?
python --version
Python 3.7.1
pip show pywin32
version 225 如果沒有則執行 pip install pywin32
pip show pyinstaller
version3.5 如果沒有則執行 pip install pyinstaller
本次開發用的是eclipse,主要是eclipse用習慣了,感覺用着也上手,畢竟插件功能海量。
項目結構和腳本內容:
執行如下:等待輸入
ok 簡單點的預期:就是上述顯示能生成一個exe文件,我點擊就會獨立運行。
pyinstaller --onefile --nowindowed --icon='E:\workspace-eclipse\day1\mydat\favicon.ico' a.py
可以看到生成a.exe文件
把a.exe拷貝到桌面,雙擊運行:
至此,導出成exe獨立程序已經實現。嗯,能不能加個按鈕或者輸入框那樣的顯示呢,命令窗口有點不太友好呢。
python 有現成的GUI框架直接引入好了,tk比較簡單。
修改腳本內容如下,命名為b.py
from tkinter import * class Application(Frame): def __init__(self, master=None): Frame.__init__(self, master) self.createWidgets() self.pack() def createWidgets(self): self.helloLabel = Label(self, text='Please intput your name:',bd=20,fg='red') self.helloLabel.pack() self.entry1=Entry(self,bd=5,fg="black") self.entry1.pack() self.quitButton = Button(self, text='Quit', command=self.quit) self.quitButton.pack() app = Application() # 設置窗口標題: app.master.title('Hello World') # 主消息循環: app.mainloop()
執行命令行:
pyinstaller -F -w --icon='E:\workspace-eclipse\day1\mydat\favicon.ico' b.py
備注 -F:生成單個文件 -w : 是去掉命令行窗口 生成b.exe文件如下:
運行b.exe,界面展示如下:
---end---