【Python】6 种方法轻松将 Python 脚本打包成 EXE 应用

以下是 2025–2026 年最实用的 6 种 Python 脚本打包成 Windows EXE 可执行文件 的主流方法,按易用性 × 普及度 × 实际场景排序。

排名方法/工具易用性生成文件大小启动速度运行速度反编译难度典型场景推荐指数 (★5)
1PyInstaller★★★★★大(onefile 常 50–300MB)慢(几秒~几十秒)普通绝大多数 GUI、小工具、初次尝试★★★★★
2auto-py-to-exe★★★★★同 PyInstaller同上普通零基础用户、GUI 操作打包★★★★☆
3Nuitka★★★★☆中~小明显更快(1.5–4×)中~高性能敏感、数值计算、想保护代码★★★★☆
4cx_Freeze★★★★较快普通低~中追求启动快、跨平台、自定义 setup.py★★★☆☆
5PyOxidizer★★☆☆☆小~中非常快普通~快中~高极致体积/启动速度、Rust 爱好者★★☆☆☆
6Shiv / PEX★★★小(.pyz)普通普通内部工具分发、需要 Python 环境★★☆☆☆

1. PyInstaller(目前最推荐的起点)

最成熟、兼容性最好、社区最大。

# 安装 pip install pyinstaller # 最常用单文件模式(推荐) pyinstaller -F --noconsole your_script.py # 带图标 + 隐藏控制台 + 加数据文件 pyinstaller -F --noconsole --icon=app.ico \ --add-data "images;images"\ --add-data "config.json;."\ --name "MyTool" your_script.py # 调试时先用文件夹模式找问题 pyinstaller -D your_script.py 

常见问题解决

  • 缺少模块 → --hidden-import=numpy.core._methods
  • 数据文件丢失 → --add-data 或修改 .spec 文件
  • 杀毒误报 → 用 --onedir 模式,或提交样本给杀软厂商

2. auto-py-to-exe(图形界面,最适合新手)

本质是 PyInstaller 的 GUI 封装。

pip install auto-py-to-exe auto-py-to-exe 

优点:点点鼠标就能出 exe,适合演示、快速交付给非技术用户。

缺点:Python 3.11+ 有时兼容性问题,建议用 3.9 或 3.10。

3. Nuitka(追求速度与保护代码的首选)

真正把 Python 转成 C → 编译成原生可执行文件。

# 安装(需要 C 编译器:MSVC / MinGW) pip install nuitka # 推荐写法(单文件 + 插件) python -m nuitka --standalone --onefile \ --enable-plugin=tk-inter \ --windows-disable-console \ --windows-icon-from-ico=app.ico \ --include-data-dir=assets=assets \ your_script.py 

2025–2026 亮点

  • 运行速度可达 CPython 的 2–4 倍(尤其 numpy/pandas/torch 代码)
  • 反编译难度明显高于 PyInstaller
  • 启动速度通常比 PyInstaller 快很多

缺点:打包时间长(复杂项目可能几分钟到十几分钟)。

4. cx_Freeze(启动快、体积相对友好)

pip install cx-freeze # 创建 setup.py from cx_Freeze import setup, Executable setup(name="MyApp", version="1.0", executables=[Executable("main.py", base="Win32GUI")], options={"build_exe":{"packages":["numpy", "pandas"], "include_files":["config.json", "images/"], "excludes":["tkinter"]# 如不需要}})# 打包 python setup.py build # 或直接生成单文件(需额外配置)

优点:启动比 PyInstaller 快很多,目录结构清晰。

缺点:配置比 PyInstaller 稍麻烦。

5. PyOxidizer(极致启动速度 + 小体积)

Rust 编写,嵌入式 Python 解释器。

目前(2026)更适合有 Rust 经验的开发者,或对启动时间、体积有极端要求的企业项目。

# pyoxidizer.bzl 配置示例(简化) [[python_distribution]] name = "embedded" python_exe = "python.exe" [[exe]] name = "myapp" script = "main.py" 

优点:启动极快、内存占用低、可做到较小单文件。

缺点:学习曲线陡峭,生态远不如 PyInstaller。

6. Shiv / PEX(.pyz 格式,需目标机器有 Python)

不是真正的 exe,但可以作为补充方案。

pip install shiv shiv -c myapp -o myapp.pyz .

优点:文件很小,跨平台。

缺点:目标机器必须安装 Python。

快速选择指南(2026 视角)

你想要什么推荐工具顺序
最简单、最快上手auto-py-to-exe → PyInstaller
GUI 程序、给普通人用PyInstaller + --noconsole --onefile
性能敏感、数值/AI 类程序Nuitka(–onefile)
启动时间敏感cx_Freeze 或 Nuitka
极致体积 + 启动速度PyOxidizer 或 Nuitka
内部工具、服务器分发Shiv / PEX

最推荐的入门组合(2026)

  1. 先用 auto-py-to-exe 快速出第一个 exe
  2. 遇到问题后转 PyInstaller 命令行精细控制
  3. 如果对速度/保护有要求 → 切换 Nuitka

有具体项目类型(GUI、命令行、带 numpy/pandas、带 PyQt/tkinter、pygame 等)可以告诉我,我可以给出更精确的打包参数和常见坑的解决方案~

Read more

MK米客方德SD NAND:无人机存储的高效解决方案

MK米客方德SD NAND:无人机存储的高效解决方案

在无人机技术迅猛发展的当下,飞控系统的数据记录对于飞行性能剖析、故障排查以及飞行安全保障极为关键。以往,SD 卡是飞控 LOG 记录常见的存储介质,但随着技术的革新,新的存储方案不断涌现。本文聚焦于以 ESP32 芯片为主控制器的无人机,创新性采用 SD NAND 芯片 MKDV32GCL-STPA 芯片进行 SD NAND 存储,测试其在飞控 LOG 记录功能中的表现。 米客方德 SD NAND 芯片特性 免驱动优势:与普通存储设备不同,在该应用场景下,SD NAND 无需编写复杂的驱动程序。这极大地简化了开发流程,缩短了开发周期,减少了潜在的驱动兼容性问题,让开发者能够更专注于实现核心功能。 自带坏块管理功能:存储设备出现坏块难以避免,而 MKDV32GCL - STPA 芯片自带的坏块管理机制可自动检测并处理坏块。这确保了数据存储的可靠性,避免因坏块导致的数据丢失或错误写入,提升了整个存储系统的稳定性。 尺寸小巧与强兼容性:

By Ne0inhk
基于FPGA的图像增强算法实现之旅

基于FPGA的图像增强算法实现之旅

基于FPGA的图像增强算法实现,图像处理,学习 FPGA项目名称:基于FPGA的视频图像实时增强处理系统设计 项目包括: 1.项目所使用的图像增强算法介绍 2.算法的FPGA顶层架构设计、各功能模块设计、模块间接口设计讲解; 3.整体算法的各模块集成、仿真、实际调试。 本项目提供源程序,仿真程序,在线逻辑分析,讲解等。 涉及整个项目流程的完整实现讲解,适合于FPGA学习者,增加项目经验,对于提高FPGA设计能力有一定的帮助。 主页还有更多有关FPGA图像处理算法实现的项目,欢迎咨询。 其中包括: 1.颜色空间转换 2.快速中值滤波算法 3.sobel边缘检测算法 4.OTSU算法 5.卡尔曼滤波算法 6.局部自适应分割算法 7.目标检测算法 8.目标跟踪算法 #modelsim 嘿,FPGA爱好者们!今天来跟大家分享一个超有意思的项目——基于FPGA的视频图像实时增强处理系统设计。这个项目对于想提升FPGA设计能力,积累项目经验的小伙伴,

By Ne0inhk
Vivado 使用教程

Vivado 使用教程

目录 一、创建工程 二、创建文件 三、编写代码 四、仿真验证 五、配置管脚 六、生成Bitstream文件并烧录 一、创建工程 1.左边创建(或打开)工程,右侧可以快速打开最近打开过的工程。 2.来到这一步,命名工程并设置工程的存放路径(这里以D触发器为例) 3.选择RTL点击next。会来到添加文件环节(可以在这里添加.v等文件,不过后面再添加是一样的)直接点击next。 4.选择芯片型号(根据开发板选,这里随便选的),完成后点next会弹出信息概要,finish完成。         二、创建文件 完成上述步骤会进入当前界面: 1.工程管理器add sourse添加(创建)设计文件,创建文件后选择Verilog语言并命名。 2.定义端口(可选),若在这定义后,

By Ne0inhk
【小沐杂货铺】基于Three.js渲染三维无人机Drone(WebGL / vue / react )

【小沐杂货铺】基于Three.js渲染三维无人机Drone(WebGL / vue / react )

🍺三维数字地球GIS系列相关文章(C++)🍺:1【小沐学GIS】基于C++绘制三维数字地球Earth(OpenGL、glfw、glut)第一期2【小沐学GIS】基于C++绘制三维数字地球Earth(OpenGL、glfw、glut)第二期3【小沐学GIS】基于C++绘制三维数字地球Earth(OpenGL、glfw、glut)第三期4【小沐学GIS】基于C++绘制三维数字地球Earth(QT、OpenGL)第四期5【小沐学GIS】基于C++绘制三维数字地球Earth(QT、OpenGL、Satellite、卫星轨道模拟)第五期6【小沐学GIS】基于C++绘制三维数字地球Earth(OpenG、SolarSystem、太阳系模拟)第六期7【小沐学GIS】基于C++绘制三维数字地球Earth(OpenGL、OpenSceneGraph

By Ne0inhk