如何打包 Tkinter 程序以便与他人共享?


Tkinter 是一个基于 Python 库的跨平台 tk GUI 工具包,用于创建和开发基于 GUI 的应用程序。Tkinter 应用程序可以打包成可执行文件或可运行文件,使应用程序无需使用 Python 解释器或 IDLE 即可运行。当用户希望与他人共享应用程序而不共享代码时,打包应用程序的需求就成为优先事项。

Python 拥有各种模块和扩展,允许用户将正在运行的应用程序转换为可执行的、可移植的文件。每个文件都在不同的平台上运行;因此,为了使其能够访问所有操作系统,Python 为 Windows、MacOS 或基于 Linux 的操作系统提供了软件包。

在这里,我们将使用 Python 中的 **Pyinstaller** 软件包将应用程序打包成可执行文件。为了安装 **Pyinstaller**,您可以使用以下命令:

pip install pyinstaller

安装完成后,我们可以按照以下步骤将 Python 脚本文件(包含 Tkinter 应用程序文件)转换为可执行文件。

  • 在 Windows 操作系统中使用 **pip install pyinstaller** 安装 **pyinstaller**。现在,键入以下命令并按 Enter 键。

pyinstaller --onefile -w filename
  • 检查文件(脚本文件)的位置,您将找到一个 **dist** 文件夹,其中包含可执行文件。

  • 当我们运行该文件时,它将显示 Tkinter 应用程序的窗口。

示例

在这个示例中,我们将创建一个应用程序,要求用户输入姓名,然后用他们的姓名向用户问候。

# Import the required Libraries
from tkinter import *
from tkinter import ttk

# Create an instance of tkinter frame
win =Tk()

# Set the geometry of tkinter frame
win.geometry("750x250")

# Define a function to show a message
def myclick():
   message="Hello "+ entry.get()
   label=Label(frame, text=message, font=('Times New Roman', 14, 'italic'))
   entry.delete(0, 'end')
   label.pack(pady=30)

# Creates a Frame
frame =LabelFrame(win, width=400, height=180, bd=5)
frame.pack()

# Stop the frame from propagating the widget to be shrink or fit
frame.pack_propagate(False)

# Create an Entry widget in the Frame
entry =ttk.Entry(frame, width=40)
entry.insert(INSERT, "Enter Your Name")
entry.pack()

# Create a Button
ttk.Button(win, text="Click", command=myclick).pack(pady=20)

win.mainloop()

输出

现在,运行以下命令将给定的代码转换为可执行文件。

pyinstaller --onefile -w filename

这将影响目录(**dist** 文件夹),所有可执行文件将自动放置在此目录中。

当我们运行 exe 文件时,它将显示一个包含 Entry 控件的窗口。如果我们点击“点击”按钮,它将在屏幕上显示一条问候消息。

更新于:2021年6月18日

3K+ 次浏览

开启您的 职业生涯

通过完成课程获得认证

立即开始
广告

© . All rights reserved.