python脚本生成exe程序
去年十一月换了新公司后,一直没闲着,马不停蹄地接不同的需求,一个版本一个版本的迭代,也没时间研究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---