Tkinter编写带GUI的小软件+pyinstaller打包踩坑全流程 - win10
1. Tkinter
关于Python的GUI编程,最初级最简洁的工具肯定是tkinter了。
Tkinter (Tk接口)是 Python 的标准 GUI 库,无需另外安装。Python 使用 Tkinter 可以快速的创建 GUI 应用程序。
使用Python写的带有GUI的小工具,想要打包成exe文件,发布给不懂python的人直接使用怎么办呢?本文介绍了把tkinter编写的简单的含有GUI的py文件打包成exe的全部踩坑过程。
1.1 使用Tkinter的准备
首先导入所需要的库。这里注意第一个坑:
tkinter的一些子模块,一定要显式导入才行,比方tkinter.messagebox
这个就要单独导入,若只导入tkinter
而不显式导入一些子模块,经测试打包成exe后的弹窗等功能会失效。
正确:
import tkinter
import tkinter.messagebox
import tkinter.filedialog
import os
import pandas as pd
错误:
import tkinter
import os
import pandas as pd
1.2 完整程序样例(tkinter的使用等不赘述)
# -*- coding: utf-8 -*-
"""
Created on Fri Jan 8 15:55:22 2021
@author: wangy
功能说明:读取excel文件中的员工工号,并从指定文件夹中删除这些特定工号后缀的员工照片文件
"""
import pandas as pd
import os
import tkinter.filedialog
import tkinter.messagebox
import tkinter
pathlist = {
'p1':'','p2':''} # 存放excel文件和图片文件夹的路径
def selectPath():
# 选择excel文件路径的函数
filepath = tkinter.filedialog.askopenfilename()
path.set(filepath)
pathlist['p1'] = filepath
def selectPath2():
# 选择照片存放文件夹路径的函数
folderpath = tkinter.filedialog.askdirectory()
path2.set(folderpath)
pathlist['p2'] = folderpath
def photo_delete():
# 实现照片删除功能的函数
show.delete(1.0, tkinter.END)
excel1 = pd.read_excel(pathlist['p1'],converters={
'姓名':str,'工号':str