Python打包神器pyinstaller和tkinter图形化GUI界面
当我们写好测试工具后,怎么样才能方便其他人使用呢?试想一个不太懂Python的人,如果直接把源代码发给他,他可能一头雾水,他需要配置Python环境,安装编译器,如果有拓展,还需要自己导入包,是不是听起来很麻烦。为了解决这个问题,本文将基于pyinstaller编写一个打包神器,让python源代码即开即用。
# [打包]pyinstaller
# 应用场景:把python源代码打包为exe文件def add_numbers(x, y):return x + ytry:a = float(input("输入第一个数:"))b = float(input("输入第二个数:"))result = add_numbers(a, b)print("两数之和是:{}".format(result))
except ValueError:print("输入有错误")# 打开cmd或者pycharm终端
# 运行pip install pyinstaller,安装
# 在终端输入pyinstaller --onefile 'path'
按照上述操作之后,就会在目录生成一个对应的exe文件,打开即用了
命令行窗口感觉还是不够美观,因此可以做成一个界面,更方便使用:
# tkinter是Python的一个内置GUI库
# 应用场景:提高测试工具的易用性import tkinter as tkdef add_numbers():try:x = float(e1.get())y = float(e2.get())result = x + yl3.config(text=result)except ValueError:l3.config(text="输入数字")# 创建主窗口
window = tk.Tk()
# 命名
window.title("测试工具-加法计算器")
# 设置窗口大小
window.geometry("300x300")
# 主体程序部分,需要两个输入框输入数字,一个按钮用来触发运算,最后需要一个结果显示
# tk支持十多种控件,本次主要用到:
"""
label:标签控件,可以显示文本和位图
Entry:输入控件
Button:按钮控件
"""
# 加数
l1 = tk.Label(window, text="请输入第一个数字")
e1 = tk.Entry(window, width=10)
l2 = tk.Label(window, text="请输入第二个数字")
e2 = tk.Entry(window, width=10)
# 按钮
b = tk.Button(window, text="运行", command=add_numbers)
# 结果
l3 = tk.Label(window, text="结果")
l3.pack()
# pack()用于控件摆放,如果不用的话,只会创建控件,不会显示在GUI界面
l1.pack()
e1.pack()
l2.pack()
e2.pack()
b.pack()# 让主窗口保持显示
window.mainloop()# pyinstaller --onefile --windowed 'path/xx.py'
# --windowed可以不显示命令行窗口