使用 PyInstaller 将 Python 程序打包为独立可执行文件

不晚
不晚
发布时间:2026-10-15| 2人浏览过
原创

本文详细介绍如何使用 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)

执行打包程序

常用的打包命令包括:

标题参数说明
-Fpyinstaller -F a.py在dist目录下生成一个可执行文件
-Dpyinstaller -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 打包可执行文件的内容,请搜索本站历史文章或浏览后续相关文章。感谢大家的支持!

相关标签:

免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。

Python 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。