使用 PyInstaller 将 Python 程序打包为独立可执行文件
本文详细介绍如何使用 PyInstaller 将 Python 脚本打包为独立的可执行文件,无需目标机器安装 Python 环境。文章涵盖安装步骤、常用命令参数(如 -F 和 -D)的区别,以及生成文件结构的解析。特别强调 PyInstaller 非交叉编译特性,需在同一操作系统下进行打包操作。
前言
对于专业 Python 开发者而言,打包工具的使用频率可能不高。然而,当向非技术人员交付项目时,要求对方配置 Python 环境及安装各类依赖库往往令人头疼。此外,若需保护源代码不被泄露,打包工具便成为关键解决方案。本文重点介绍目前最流行的打包工具 PyInstaller 的具体用法。
PyInstaller 简介
PyInstaller 是一款 Python 打包工具,能够将 Python 程序及其所有依赖项整合为一个独立的可执行文件。
具体而言,当输入指定的 Python 脚本时,PyInstaller 会首先分析该脚本所依赖的其他模块和脚本,查找并收集所有相关文件(包括 Python 解释器本身),最后将这些文件放置在一个目录中,或直接打包成一个可执行文件。打包完成后,用户只需运行该可执行文件即可,无需再配置复杂的 Python 运行环境。
需要特别注意,PyInstaller 并非交叉编译器。这意味着,若要将 Python 程序打包为可在 Windows 系统上运行的文件,必须在 Windows 环境下使用 PyInstaller 执行打包操作;同样,若需生成 Linux 或 macOS 的可执行文件,也必须在对应的操作系统上进行打包,无法跨平台交叉编译。
PyInstaller 下载与安装
首先,由于 PyInstaller 支持 Python 版本需大于等于 3.7,请确保你的开发环境使用 Python 3.7 或更高版本。
安装步骤如下:
pip install pyinstaller下载完成后,运行 pyinstaller -h 命令,若显示帮助信息则表明安装成功。

PyInstaller 使用指南
准备程序代码
以下以一个简单的 Python 程序为例,新建一个名为 a.py 的文件,其内容如下:
import fire
def print_msg(msg):
print("print here:", msg)
if __name__ == "__main__":
fire.Fire(print_msg)执行打包程序
常用的打包命令包括:
| 标题 | 参数 | 说明 |
|---|---|---|
| -F | pyinstaller -F a.py | 在dist目录下生成一个可执行文件 |
| -D | pyinstaller -D a.py | 在dist目录中,除了可执行文件,还会生成依赖文件 |
此处采用第一种方式生成文件,执行 pyinstaller -F a.py 命令。
执行完毕后,当前目录下会新增几个文件或目录,分别为 a.spec、build 目录和 dist 目录。
- .spec 文件:记录了打包时的参数等信息,也可以预先编写好 spec 文件直接用于打包。
- build 目录:存放打包过程中产生的临时文件,通常可以忽略。
- dist 目录:存放最终的可执行文件及所需依赖。在示例中,dist 目录下的 a 文件即为生成的可执行文件。
$ ls
a.py a.spec build/ dist/$ ls dist
a运行测试:./dist/a 你好
$ ./dist/a 你好
print here: 你好结果符合预期,打包过程完成。接下来只需将 dist 目录提供给使用者即可。
小结
本文简要介绍了 PyInstaller 的使用方法,在需要将 Python 程序打包为可执行文件的场景下,PyInstaller 是理想选择。需再次强调,PyInstaller 不支持跨系统打包,必须在目标运行平台对应的操作系统上进行操作。
至此,关于使用 PyInstaller 将 Python 程序打包为可执行文件的介绍结束。如需了解更多关于 Python 打包可执行文件的内容,请搜索本站历史文章或浏览后续相关文章。感谢大家的支持!
本站声明
本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。













