【问题提出】
我们知道C++编译之后会直接生成可执行文件,其他人电脑上即使没有安装编译器,也可以直接执行。
而python是一门解释性语言,不能像C++一样直接编译。所以一个自然的想法就是,将python程序及其解释器一起打包,这样从外界看来,它们整体就是一个可执行文件了。
pyinstaller这个工具就是用来做这个事。
【具体使用】:
1、安装pyinstaller
pip install pyinstaller
2、编写我们的python程序。
为了达到演示效果,编写一个弹窗程序。
代码如下:
import tkinter as tk
# 创建主窗口
root = tk.Tk()
root.title("Hello World Window") # 设置窗口标题
# 创建标签控件用于显示文本
label = tk.Label(root, text="Hello world!", font=("Helvetica", 24))
label.pack(padx=200, pady=200) # 设置内边距
# 进入主循环
root.mainloop()
代码效果:
3、打包
pyinstaller hello.py
在使用 PyInstaller 打包时,会生成一些文件夹和文件,这些文件夹和文件有不同的作用和含义:
build 文件夹: 在 PyInstaller 打包过程中,临时的构建文件会存储在 build 文件夹中。这些文件是生成可执行文件的中间文件,通常在最终生成可执行文件之后可以删除。build 文件夹中可能包含编译后的字节码、资源文件以及其他中间文件。
dist 文件夹: 打包完成后,生成的可执行文件(以及其他相关文件)将被放置在 dist 文件夹中。这是 PyInstaller 默认输出生成的可执行文件的目录。你可以在这个文件夹中找到最终的可执行文件,可以将其分发给其他用户。
hello.py: 这是你要打包的 Python 脚本文件,其中的 “hello” 是你的脚本的文件名。在 PyInstaller 打包过程中,它将会被转换成可执行文件。
hello.spec: 当你运行 PyInstaller 打包命令时(例如 pyinstaller hello.py),PyInstaller 会生成一个 .spec 文件,其中包含了有关打包过程的配置信息。你可以编辑这个 .spec 文件来自定义打包过程中的参数、设置和依赖项。
综合起来,build 文件夹包含了打包过程中的临时文件,dist 文件夹包含了最终生成的可执行文件,而 hello.py 是你要打包的原始 Python 脚本文件。如果你需要更多的打包控制,你可以编辑 hello.spec 文件来进行自定义配置。在打包完成后,你可以将 dist 文件夹中的可执行文件分发给其他用户或在需要的计算机上运行。
打包结果截图:
直接就可以运行hello了。