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 偶尔会被某些杀毒软件误报,这是打包工具的常见现象。如果分发给别人,可以提前说明一下。

相关推荐
吴名氏.6 分钟前
Java转AI Agent教程(第十二周)检索与切分
java·开发语言·人工智能·ai·ai agent
量化分析码农34 分钟前
【Python量化趋势跟踪实战 01】均线多头排列就是趋势开始吗:过滤与确认
python
用户2986985301437 分钟前
Python 实战:把代码写入 Word 文档的两种实现方式
后端·python·api
小小张说故事39 分钟前
Python 里 pickle 到底存了什么:拆开 __reduce__、__getstate__ 和那串能执行代码的字节码
python
瑞雪兆丰年兮44 分钟前
JavaWeb-day10-SpringBootWeb案例
java·开发语言·javaweb·web
reasonsummer1 小时前
【教学类-150-03】20261108蝴蝶连连看html(一页2个版面、3个版面)
python·html
Elastic 中国社区官方博客1 小时前
更少的位数,相同的召回率:DiskBBQ 更保守的自动校准扫描
大数据·运维·开发语言·人工智能·elasticsearch·搜索引擎
用户019027581611 小时前
用 Polars 快速分析 A 股 K 线:比 pandas 更快的列式处理
python
用户0332126663671 小时前
使用 Python 轻松加密或解密 Excel 文档
python·excel
三雷科技1 小时前
第6章第4节:自定义分词器
开发语言·c#