Python创建GUI程序并打包为exe文件
日常工作中,我们可能会用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 askdirectory
from ttkbootstrap import Window
from ttkbootstrap import Button
from ttkbootstrap.dialogs.dialogs import Messagebox, Querybox
from pathlib import Path
import pandas as pd
# 合并Excel
def 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) # 窗口置于最前端
# 添加点击按钮1
button1 = 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 pandas
pip install ttkbootstrap
pip install openpyxl
pip 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文件的完整过程,如果有疑问,欢迎留言交流,我看到后会及时回复。
原创文章,转载请务必注明出处并留下原文链接。