日常工作中,我们可能会用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文件的完整过程,如果有疑问,欢迎留言交流,我看到后会及时回复。
 


原创文章,转载请务必注明出处并留下原文链接。

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注