使用PyInstaller将Python打包成EXE的完整教程(单文件 \+ 整个工程)

 更新时间:2026年07月07日 08:57:30   作者:猎嘤一号  
这篇文章主要介绍了使用PyInstaller将Python打包成EXE的完整教程,不管是单个 .py 文件,还是整个项目工程(多文件、带图片 / 配置 / 依赖库),都能一键打包成独立 EXE,需要的朋友可以参考下

我给你一套最简单、最通用、零报错的打包方案,用 PyInstaller(Python 最主流、最稳定的打包工具),不管是单个 .py 文件,还是整个项目工程(多文件、带图片 / 配置 / 依赖库),都能一键打包成独立 EXE。

全程不用装复杂环境,复制命令就能用!

一、先安装打包工具

打开 CMD / 终端,执行:

pip install pyinstaller

二、场景 1:打包单个 Python 文件

比如你只有一个 main\.py,没有其他依赖文件。

最简命令(生成单个 EXE)

pyinstaller -F -w main.py

命令解释

  • \-F:打包成单个独立 EXE 文件(最常用)
  • \-w:运行时不弹出黑色控制台窗口(GUI 程序必加)
  • 如果是命令行工具,去掉 -w

输出位置

打包完成后,去你的项目文件夹里找:

dist/
   main.exe  <-- 这就是最终可直接运行的文件

三、场景 2:打包整个 Python 工程

多文件项目(比如:main\.pyutils\.pyconfig\.jsonimages/ 文件夹、venv/ 虚拟环境)。

核心命令(推荐)

pyinstaller -F -w main.py

PyInstaller 会自动扫描并打包所有导入的模块、依赖文件

四、如果项目里有外部资源(图片 / 配置 / 模型 / 数据库)

比如:

  • images/logo\.png
  • config\.yaml
  • data/model\.pth

直接打包会找不到文件,必须用 \-\-add\-data 把资源一起打进 EXE。

Windows 命令格式

pyinstaller -F -w --add-data "资源路径;目标路径" 主文件.py

示例(打包带图片 + 配置文件)

pyinstaller -F -w ^
--add-data "images;images" ^
--add-data "config.yaml;." ^
main.py
  • images;images:把 images 文件夹打包进 EXE,运行时自动释放到同目录 images
  • config\.yaml; \.:把配置文件放到根目录

五、进阶:给 EXE 加图标

准备一个 \.ico 格式图标(不能是 png/jpg),放在项目目录。

命令:

pyinstaller -F -w -i logo.ico main.py

六、最常用的 4 条万能命令(直接复制用)

1. 单文件 + 无控制台(GUI 软件)

pyinstaller -F -w main.py

2. 单文件 + 控制台(工具脚本)

pyinstaller -F main.py

3. 单文件 + 无控制台 + 图标

pyinstaller -F -w -i app.ico main.py

4. 整个工程 + 资源文件 + 图标

pyinstaller -F -w -i app.ico --add-data "images;images" --add-data "config.yaml;." main.py

七、打包后常见问题(必看)

EXE 双击打不开 / 一闪而过

  • 大概率是缺资源文件,或代码报错
  • 去掉 -w 用控制台运行,看报错信息

文件太大(几百 MB)pip install virtualenv virtualenv venv venv\\Scripts\\activate pip install 你的依赖 pip install pyinstaller再打包,体积能缩小到 10~30MB

  • 使用 虚拟环境,只装项目用到的库

杀毒软件误报

  • PyInstaller 打包的程序普遍会被误报
  • 解决方法:添加信任 / 用 \-\-noupx 命令

八、快速总结

  1. 安装:pip install pyinstaller
  2. 单文件:pyinstaller \-F \-w 文件名\.py
  3. 多文件工程:一样的命令,自动打包依赖
  4. 带资源:加 \-\-add\-data
  5. 输出文件在:dist/xxx\.exe

总结

  • 单个 .py 文件:用 pyinstaller \-F \-w 文件名\.py
  • 整个工程:同样命令,自动识别多文件
  • 带图片 / 配置:用 \-\-add\-data 绑定资源
  • 最终 EXE 都在 dist 文件夹里,可直接发给别人运行(无需装 Python)

以上就是使用PyInstaller将Python打包成EXE的完整教程(单文件 \+ 整个工程)的详细内容,更多关于PyInstaller将Python程序打包成exe的资料请关注脚本之家其它相关文章!

相关文章

  • 使用python计算三角形的斜边例子

    使用python计算三角形的斜边例子

    这篇文章主要介绍了使用python计算三角形的斜边例子,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-04-04
  • python中的np.round()函数示例详解

    python中的np.round()函数示例详解

    np.round()是NumPy库中的一个函数,用于对数组或单个数值进行四舍五入,该函数返回一个与输入类型相同的数组或数值,并可以通过可选的参数来指定保留的小数位数,这篇文章主要介绍了python中的np.round()函数,需要的朋友可以参考下
    2024-06-06
  • 听歌识曲--用python实现一个音乐检索器的功能

    听歌识曲--用python实现一个音乐检索器的功能

    本篇文章中主要介绍了用python实现一个音乐检索器,类似于QQ音乐的摇一摇识曲,有兴趣的同学可以了解一下。
    2016-11-11
  • Python基于链接表实现无向图最短路径搜索

    Python基于链接表实现无向图最短路径搜索

    链接表的存储相比较邻接炬阵,使用起来更方便,对于空间的使用是刚好够用原则,不会产生太多空间浪费。所以本文将以链接表方式实现无向图最短路径搜索,需要的可以参考一下
    2022-04-04
  • Python代码中引用已经写好的模块、方法的两种方式

    Python代码中引用已经写好的模块、方法的两种方式

    这篇文章主要介绍了Python代码中引用已经写好的模块、方法,下面就介绍两种方式,可以简洁明了地调用自己在其他模块写的代码,需要的朋友可以参考下
    2022-07-07
  • Python 语句的表达式和缩进

    Python 语句的表达式和缩进

    本篇文章将会使大家了解Python 语句、表达式以及它们之间的区别。还包含几个示例来更清楚地解释这个概念。接下来,我们将解释如何在 Python 编程中使用多行语句和缩进,需要的朋友可以参考一下
    2021-09-09
  • python使用内存zipfile对象在内存中打包文件示例

    python使用内存zipfile对象在内存中打包文件示例

    这篇文章主要介绍了python使用内存zipfile对象在内存中打包文件示例,需要的朋友可以参考下
    2014-04-04
  • Python将列表数据写入文件(txt, csv,excel)

    Python将列表数据写入文件(txt, csv,excel)

    这篇文章主要介绍了Python将列表数据写入文件(txt, csv,excel),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-04-04
  • 浅谈Python xlwings 读取Excel文件的正确姿势

    浅谈Python xlwings 读取Excel文件的正确姿势

    这篇文章主要介绍了浅谈Python xlwings 读取Excel文件的正确姿势,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-02-02
  • Python与Java接入AI模型的MCP协议的原理与实现

    Python与Java接入AI模型的MCP协议的原理与实现

    MCP(Model Context Protocol) 是一种专为远程控制和管理 AI 大模型而设计的通信协议,本文小编就为大家大家介绍一下Python和Java 中接入AI大模型的MCP协议的具体方法吧
    2025-05-05

最新评论