前言:
目前大家对“oracle12wmconcat”大概比较着重,咱们都想要知道一些“oracle12wmconcat”的相关内容。那么小编同时在网上汇集了一些对于“oracle12wmconcat””的相关资讯,希望同学们能喜欢,小伙伴们一起来学习一下吧!日常工作中,我们可能会用Python开发一些简单轻便的程序来提高工作效率,但Python代码只能在安装了Python环境的电脑上运行,如果其他同事没有安装Python,那就无法使用我们开发的程序了。这种情况该怎么办呢,答案是:将Python代码打包成exe文件,就可以分享给任何人使用了。
本文就以实例<开发一个文件合并工具>来总结下Python创建GUI程序并打包成exe文件的过程:
1. 开发目标
创建一个用于文件合并的GUI程序,并将其打包成exe文件,程序命名为EasyConcat.
2. 选用第三方包
创建GUI窗口,我们选用tkinter和ttkbootstrap来实现。 打包成exe文件,我们选用Pyinstaller来实现。
3. 代码开发
最终的.py源码如下:
# 导入工具包from tkinter.filedialog import askdirectoryfrom ttkbootstrap import Windowfrom ttkbootstrap import Buttonfrom ttkbootstrap.dialogs.dialogs import Messagebox, Queryboxfrom pathlib import Pathimport pandas as pd# 合并Exceldef concat_excel(): directory = askdirectory(title="选择目录") files = [pd.read_excel(file) for file in Path(directory).glob('*.xlsx') if "合并结果" not in str(file)] df = pd.concat(files) out_excel = "%s\合并结果.xlsx" % directory df.to_excel(out_excel, index=False, header=True) Messagebox.ok(message="合并成功!", title="")# 创建窗口root = Window(title="EasyConcat", themename="superhero", size=(800, 450))root.place_window_center() # 窗口居中root.position_center() # 窗口居中root.wm_attributes('-topmost', 1) # 窗口置于最前端# 添加点击按钮1button1 = Button(root, text='合并EXCEL', command=concat_excel)button1.place(x=300, y=50, width=200, height=80)# 显示窗口root.mainloop()
以上的.py源码在安装了Python的电脑上已经可以正常运行了,如果是我们自己使用的话,到这里就可以结束了。但现在我们需要更进一步,将其打包成exe文件,以便分享给其他不搞代码的同事使用。
我们选用Pyinstaller来实现,由于我们日常使用的Python环境已经安装了很多包,直接在此Python环境下打包的话,最终的exe文件会非常大,而我们只需要打包这个程序所用到的包,因此我们先创建新的虚拟环境,在此环境下只安装用到的包,然后再打包。具体的操作步骤如下:
# 第1步:打开Anaconda Prompt# 第2步:创建一个临时的虚拟环境conda create -n tmp python=3.9# 第3步:激活刚刚创建的虚拟环境conda activate tmp# 第4步:在刚刚创建的虚拟环境下安装我们用到的第三方包pip install pandaspip install ttkbootstrappip install openpyxlpip install pyinstaller# 第5步:进入到要打包的.py代码文件所在的目录cd xxxxxx# 第6步:使用Pyinstaller将准备好的.py源码和.ico图标打包Pyinstaller -F -w -i EasyConcat.ico EasyConcat.py
最终我们将.py文件打包成了.exe文件,可以将其分享给任何人使用了。
4. 成果展示
双击exe文件打开程序,程序界面如下,3个按钮分别用于合并不同类型的文件。
以上就是Python创建GUI程序并打包成exe文件的完整过程,如果有疑问,欢迎留言交流。
如果需要最终的exe软件,可以在文章下面留言评论,我看到后会私信发你网盘链接,也欢迎你在使用上遇到问题或者有其他建议能反馈给我,我基于你的反馈完善后会公开给大家使用。
标签: #oracle12wmconcat