我们是由枫哥组建的IT技术团队,成立于2017年,致力于帮助IT从业者提供实力,成功入职理想企业,我们提供一对一学习辅导,由知名大厂导师指导,分享Java技术、参与项目实战等服务,并为学员定制职业规划,全面提升竞争力,过去8年,我们已成功帮助数千名求职者拿到满意的Offer:IT枫斗者IT枫斗者-Java面试突击


前言

超极简 Python 打包 EXE 教程,零废话、纯实操、3分钟直接上手。解决所有新手打包痛点,写完就能直接用!

一、为什么要打包Python程序?

日常开发经常遇到这些尴尬问题:

  • 同事/客户电脑没有安装Python环境,无法运行代码
  • 命令行运行程序太繁琐,普通人不会操作
  • 本地能跑,换电脑就报错,环境依赖不一致

打包成 .exe 可执行文件 完美解决:双击直接运行,无需环境、无需配置、告别环境兼容问题

二、安装打包工具(一行命令搞定)

Python 主流打包工具 pyinstaller,全网通用、稳定无坑。

1. 安装命令

pip install pyinstaller

2. 验证安装成功

pyinstaller --version

输出版本号即代表安装完成。

三、核心打包命令(记这4个全覆盖场景)

日常开发所有场景,只需要掌握以下命令,直接复制即用:

使用场景 打包命令
最简打包(文件夹形式,启动快) pyinstaller main.py
单文件打包(最推荐,方便分发) pyinstaller -F main.py
GUI程序(去除运行黑窗口) pyinstaller -F -w main.py
GUI程序+自定义图标 pyinstaller -F -w -i app.ico main.py

参数释义

  • -F:打包为单个exe文件,便于分发
  • -w:隐藏控制台黑窗口(GUI桌面程序必加)
  • -i:指定程序图标(仅支持.ico格式)

四、打包后文件位置说明

打包命令执行完毕后,项目目录会生成三个文件/文件夹,只需关注 dist 目录:

你的项目/
├── dist/          # 核心!打包好的exe在这里
│   └── main.exe   # 最终可执行文件,直接双击运行
├── build/         # 临时缓存文件,打包完成后可直接删除
└── main.spec      # 高级配置文件,进阶打包使用

五、GUI程序必踩坑:资源文件适配(配置/图片)

很多人打包成功后,运行报错、读取不到 config.json、图片等资源文件。

原因:单文件打包后,程序运行路径会变化,相对路径直接失效。

解决方案(通用万能代码)

复制以下代码到你的项目中,统一处理资源路径,打包前后都能正常运行:

import sys, os

def resource_path(relative_path):
    """适配打包后/本地运行的资源路径"""
    if hasattr(sys, '_MEIPASS'):
        return os.path.join(sys._MEIPASS, relative_path)
    return os.path.join(os.path.abspath("."), relative_path)

# 调用示例:读取配置文件
config_path = resource_path("config.json")

带资源文件打包命令

pyinstaller -F --add-data "config.json;." main.py

格式说明--add-data "源文件;目标路径",分号分隔,Windows固定写法。

六、常见问题速查(高频报错解决)

问题现象 解决方案
打包后文件体积几百MB,过大 使用虚拟环境打包,仅安装项目必需依赖,剔除多余库
运行报错 ModuleNotFoundError 添加隐式导入:pyinstaller --hidden-import=模块名 main.py
杀毒软件误报病毒、拦截exe 升级 pyinstaller 到最新稳定版本
自定义图标不生效 必须使用**.ico 格式**,图片需通过在线工具转换,png/jpg不生效

七、零命令打包:图形化一键打包

不想记命令、不想敲代码?使用图形化工具,鼠标点击即可完成所有打包配置。

1. 安装图形化工具

pip install auto-py-to-exe

2. 启动可视化界面

auto-py-to-exe

自动弹出网页配置面板,支持单文件、无黑窗、添加图标、绑定资源文件,全程鼠标操作,一键打包

终极总结(三步搞定打包)

  1. 装工具pip install pyinstaller
  2. 执行打包:GUI程序通用命令 pyinstaller -F -w main.py
  3. 取文件:在项目 dist 目录获取最终exe文件

⭐️推荐:

更多推荐