当我们费尽心力编写好 Python 代码,想要分享给他人使用时,往往会遇到一个棘手问题 —— 对方的电脑上没有安装 Python 环境,导致代码根本无法正常运行。这时,一个绝佳的解决方案就是将 Python 代码,连同它所需的所有依赖包一起封装成 exe 可执行文件。这样一来,对方无需额外下载安装 Python 解释器和任何相关依赖,直接双击 exe 文件就能运行我们的代码成果了。
一、前置准备
确保你的 Python 代码可以正常运行(无语法错误、依赖包已安装、文件路径等问题已解决),这是打包的前提。
安装 PyInstaller
打开命令行(CMD/PowerShell/ 终端),执行以下命令:
pip install pyinstaller
二、核心打包步骤
1. 基础打包命令(最简版)
假设你的核心 Python 文件是main.py(代码入口文件),进入该文件所在的目录(命令行中用cd 你的文件路径切换),执行以下命令:
pyinstaller main.py
也直接通过 Python 的-m参数调用PyInstaller模块,跳过系统环境变量的查找,命令格式如下:
python -m PyInstaller 你的打包参数 你的py文件.py
python -m PyInstaller -F -w -i icon.ico main.py
关键参数解释:
-F(全称--onefile):打包成单个独立的可执行文件(所有依赖都整合到一个.exe里,方便传输和使用,缺点是启动速度略慢)。
-w(全称--windowed/--noconsole):隐藏命令行黑框,仅适用于 GUI 程序(如 Tkinter、PyQt、PySide 写的界面程序);如果是命令行工具(需要输出日志、输入参数),请去掉这个参数。
-i(全称--icon):指定程序图标,仅支持.ico格式(Windows),icon.ico需要和main.py放在同一目录(如果没有图标,可省略该参数,使用默认图标)。
额外可选参数:
--name 程序名:自定义打包后的程序名称(默认和 Python 文件名一致)。
--hidden-import 缺失的包名:如果打包后运行提示 “模块找不到”,用该参数手动指定依赖包(比如--hidden-import requests)。
2. 打包后生成的文件说明
执行完成后,会在main.py所在目录生成 3 个文件夹:
build/:打包过程中的临时文件,可删除,不影响最终程序。
dist/:存放最终的可执行程序,运行文件就在这个文件夹里(Windows 下是main.exe,Linux/Mac 下是main)。
main.spec:打包配置文件(后续高级打包会用到,可修改配置重复打包)。
三、注意事项(避免打包失败 / 运行报错)
代码中的文件路径尽量使用相对路径,不要使用绝对路径(比如C:\Users\XXX\data.txt,打包后在其他电脑上会找不到文件)。
确保所有依赖包都已安装(比如代码用到requests,必须先pip install requests,再打包)。
打包后的可执行文件和原 Python 环境无关,可以在同系统的其他电脑上直接运行(比如 Windows 打包的.exe,不能在 Linux/Mac 上运行,需要对应系统打包)。
如果打包大型项目(多文件、多目录),建议先整理项目结构,再通过修改*.spec文件进行精准打包(比直接用命令行参数更灵活)。