Python受欢迎的原因之一就是其计算生态丰富,据不完全统计,Python 目前为止有约13万+的第三方库。
本系列将会陆续整理分享一些有趣、有用的第三方库。
-
通过百度网盘获取:
链接:https://pan.baidu.com/s/1FSGLd7aI_UQlCQuovVHc_Q?pwd=mnsj
提取码:mnsj
-
前往GitHub获取:
https://github.com/returu/Python_Ecosystem
pip install pyinstaller
https://github.com/pyinstaller/pyinstaller
PyInstaller 的基本使用非常简单,假设,当前目录下有一个名为 hello.py 的 Python 脚本,内容如下:
print("Hello, PyInstaller!")
input("Press Enter to exit...") # 等待用户输入
只需在命令行中运行以下命令,将脚本打包为可执行文件:
pyinstaller hello.py
执行该命令后,PyInstaller
会进行以下操作:
-
生成 .spec
文件:在脚本所在的文件夹中写入.spec
文件。该文件包含了打包过程的详细配置信息,例如脚本的依赖项、打包选项等。 -
创建 build
文件夹:如果脚本所在的文件夹中没有build
文件夹,PyInstaller
会创建一个。该文件夹用于存放一些日志文件和临时工作文件。 -
写入日志和工作文件:在 build
文件夹中写入一些日志文件和临时工作文件,这些文件记录了打包过程的详细信息,有助于调试和排查问题。 -
创建 dist
文件夹:如果脚本所在的文件夹中没有dist
文件夹,PyInstaller
会创建一个。该文件夹用于存放最终打包好的可执行文件。 -
生成可执行文件:在 dist
文件夹中创建一个包含可执行文件的文件夹(如果使用了某些打包选项,可能是一个单独的可执行文件)。这个可执行文件就是要分发给用户的应用程序。
执行上述命令后,dist 文件夹中包含了打包好的可执行文件,可以直接运行该可执行文件。

pyinstaller 命令的语法如下:
pyinstaller [options] script [script …] | specfile
其中:
-
[options]:可选参数部分,用于指定打包过程中的各种设置,例如是否将所有依赖打包成一个文件、是否显示命令行窗口等。
-
script [script …]:要打包的 Python 脚本文件。当指定多个脚本时,所有脚本都会被分析并包含在最终的打包结果中。
-
| specfile:也可以指定一个 .spec 文件。.spec 文件是 PyInstaller 生成的配置文件,包含了打包过程的详细信息。可以手动编辑 .spec 文件以实现更高级的定制化操作。编辑完 .spec 文件后,可以直接指定spec 文件来打包。
PyInstaller 提供了许多选项参数,下面为一些常用的选项,完整的选项列表可以前往官方文档查看:
https://pyinstaller.org/en/stable/usage.html
-
存放路径相关参数:
-
—distpath DIR:指定打包后的应用程序存放路径(默认为 ./dist)。
-
–workpath WORKPATH:指定临时工作文件、日志文件等存放路径(默认为 ./build)。
-
生成内容相关参数:
-
-D, –onedir:生成一个包含可执行文件的文件夹(默认)。
-
-F, –onefile:生成一个单独的可执行文件。即将所有依赖项打包成一个单独的可执行文件,方便分发和使用,用户只需要一个文件就能运行程序。
-
-n NAME, –name NAME:指定打包后的可执行文件或文件夹的名称,默认为第一个脚本的文件名。
-
打包内容相关参数:
-
–add-data SOURCE:DEST:添加额外的数据文件或目录到应用程序中。格式为 source:dest_dir,其中 source 是要收集的文件或目录路径,dest_dir 是相对于应用程序顶层目录的目标路径,两者之间用分号(Windows)或冒号(Linux 和 macOS)分隔。可以多次使用该选项。
-
窗口显示相关参数:
-
-c, –console, –nowindowed:打开控制台窗口用于标准输入/输出(默认),即使程序是 GUI 应用。在 Windows 上,如果第一个脚本是 .pyw 文件,则此选项无效。
-
-w, –windowed, –noconsole:在 Windows 和 macOS 上不提供控制台窗口。在 macOS 上,此选项还会触发构建 macOS .app 应用程序包。在 Windows 上,如果第一个脚本是 .pyw 文件,则此选项会自动启用。
-
图标设置相关参数:
-
-i, –icon:为打包后的可执行文件指定图标。图标文件格式通常为
.ico
(Windows)或.icns
(macOS)。
以下示例脚本实现了一个简单的 GUI 应用程序,即使用 tkinter 库创建一个窗口,包含一个按钮和一个标签,点击按钮时,标签的文本会更新。代码如下:
import tkinter as tk
from tkinter import messagebox
# 定义按钮点击事件的处理函数
def on_button_click():
label.config(text="Hello, PyInstaller!")
messagebox.showinfo("Info", "You clicked the button!")
# 创建主窗口
root = tk.Tk()
root.title("Simple GUI App")
root.geometry("300x200") # 设置窗口大小
# 创建一个标签
label = tk.Label(root, text="Welcome to the GUI App!", font=("Arial", 14))
label.pack(pady=20) # 添加一些垂直间距
# 创建一个按钮
button = tk.Button(root, text="Click Me!", command=on_button_click, font=("Arial", 12))
button.pack(pady=10)
# 运行主循环
root.mainloop()
使用 PyInstaller 将上述脚本文件打包成一个名为 myapp 的独立可执行文件,并存放在当前目录中。该文件运行时不会显示命令行窗口,并且使用 logo.ico 作为图标:
pyinstaller --onefile --windowed --name myapp --icon logo.ico --distpath ./ hello_gui.py
生成的可执行文件如下:

直接运行该可执行文件即可打开创建的GUI应用程序。

更多内容可以前往官方文档查看:
https://pyinstaller.org/en/stable/


本篇文章来源于微信公众号: 码农设计师