Python 代码打包

在 Windows 上把 Python 代码打包成 exe,最常用、上手最快的是 PyInstaller 。如果你追求更快的运行速度或更好的代码保护,可以选 Nuitka。

🚀 首选方案:PyInstaller(简单通用)

PyInstaller 会把 Python 解释器和你的依赖库一起打包,用户不用装 Python 就能运行。

1. 安装

在命令行(CMD 或 PowerShell)里运行:

bash

python 复制代码
pip install -U pyinstaller

2. 快速打包

进入你的 .py 文件所在目录,执行:

bash

python 复制代码
pyinstaller your_program.py

打包完成后,去生成的 dist 文件夹里找 exe 文件。

3. 常用参数(让 exe 更好用)

如果你想要一个单文件,或者程序带图形界面(不想看到黑色控制台),可以加上这些参数:

参数 作用
-F 或 --onefile 打包成单个 exe 文件(方便分发)
-w 或 --windowed 隐藏控制台窗口(GUI 程序必加)
-i app.ico 给 exe 设置图标

示例(打包成单文件、无控制台、带图标的工具):

bash

python 复制代码
pyinstaller -F -w -i my_icon.ico your_program.py

备选(免命令行) :如果你不习惯敲命令,可以安装 auto-py-to-exe。它提供一个图形界面,你只需要点选文件、勾选"单文件"或"隐藏控制台",就能打包。

安装 auto-py-to-exe 很简单,只需在命令行中执行一条 pip 命令。

📥 安装步骤

  1. 打开命令行 :在 Windows 上按 Win + R,输入 cmd 后回车。

  2. 执行安装命令:

    bash

    python 复制代码
    pip install auto-py-to-exe

    如果下载速度慢,可以加上国内镜像源,例如:

    bash

    python 复制代码
    pip install auto-py-to-exe -i https://pypi.tuna.tsinghua.edu.cn/simple

🚀 如何启动

安装完成后,直接在命令行输入以下命令即可打开图形界面:

bash

python 复制代码
auto-py-to-exe

⚡ 进阶方案:Nuitka(性能更好)

Nuitka 的原理是把 Python 代码编译成 C 语言再生成机器码,所以运行速度更快,代码也更难被反编译。

1. 安装与准备

bash

python 复制代码
pip install nuitka

注意:Nuitka 在 Windows 上需要一个 C 编译器。首次运行时,它通常会提示你自动下载 MinGW64,直接同意即可。

2. 打包命令

bash

python 复制代码
nuitka --standalone --onefile --windows-disable-console your_program.py
  • --standalone:打包所有依赖,脱离 Python 环境运行。

  • --onefile:生成单个 exe。

  • --windows-disable-console:隐藏控制台(GUI 程序用)。

💡 几个小提醒

  • 资源文件 :如果你的代码里读取了图片、配置文件等外部资源,打包后记得把它们也放到 exe 同级目录,或者用工具的参数把它们嵌进去(PyInstaller 用 --add-data,Nuitka 用 --include-data-files)。

  • 杀毒误报:PyInstaller 打包的 exe 偶尔会被某些杀毒软件误报,这是打包工具的常见现象。如果分发给别人,可以提前说明一下。

相关推荐
木雷坞38 分钟前
PHP两项9.2分漏洞:Docker容器更新与版本核验教程
开发语言·docker·php
2601_962885721 小时前
如何用 Python 做 MACD 金叉全市场选股?
开发语言·python
FfHUCisI1 小时前
无锁 Reactor 网络模型与 gnet / evio 架构拆解
服务器·开发语言·后端·golang
笨笨饿1 小时前
#145 _Codex 三层故障详细排查与修复步骤
开发语言·人工智能·stm32·单片机·嵌入式硬件
科技研学社1 小时前
服装厂激光开袋机与智能模板机怎么选?核心工序设备深度对比与落地实战
数据库·python
心中有你02141 小时前
C 语言文件操作详解:从写入、追加到读取与定位的完整 实战
c语言·开发语言
小张成长计划..1 小时前
【Linux】26:线程互斥和同步
java·开发语言
张张123y5 小时前
后端第十四课:Agent 记忆系统(让 Agent 记住上下文和用户,跨会话不健忘)
java·大数据·人工智能·python·agent·记忆
阿里嘎多学长9 小时前
2026-10-20 GitHub 热点项目精选
开发语言·程序员·github·代码托管