一、为什么要把 Python 打包成 exe?
- • 对方电脑没装 Python、没配环境,直接给
.py 他跑不起来。 - • 保护源码:虽然 exe 仍可反编译,但比直接发源码门槛高很多。
二、核心工具:PyInstaller
业界最常用、跨平台、上手成本最低的就是 PyInstaller。
pip install pyinstaller
验证安装:
pyinstaller --version
三、最常用的几条命令
1. 单文件打包(最推荐新手)
pyinstaller -F your_script.py
-F / --onefile:所有依赖塞进一个 exe 文件,干净好发。
2. 去掉黑框(GUI 程序必备)
pyinstaller -F -w your_script.py
-w / --windowed:运行时不弹控制台黑窗口。你的 PyQt5 工具就该加这个。
3. 自定义图标
pyinstaller -F -w -i app.ico your_script.py
-i:指定 .ico 图标(注意必须是 ico 格式,png 不行)。
4. 打包时带上额外资源文件
pyinstaller -F -w --add-data "config.json;." your_script.py
Windows 用 ; 分隔(源;目标),macOS/Linux 用 :。代码里读取资源要用下面这段兼容写法:
import sys, os
defresource_path(relative):
base = getattr(sys, '_MEIPASS', os.path.abspath('.'))
return os.path.join(base, relative)
四、打包后文件在哪?
打包完成会在当前目录生成:
- •
dist/:里面就是最终的 your_script.exe - •
your_script.spec:打包配置文件,下次可直接 pyinstaller your_script.spec
发给别人只需要 dist/ 里的 exe。
五、体积太大怎么办?
PyInstaller 会把整个 Python 环境都打进去,常见 10~50MB。优化手段:
- 2. 加
--exclude-module 排除用不到的模块。 - 3. 用
pip install upx + 自动 UPX 压缩(PyInstaller 默认会调用)。 - 4. 实在苛刻再考虑 Nuitka(编译型,体积小但配置复杂)。
六、常见坑
七、配套工具怎么用
打开本目录的 main.py,运行后:
- 2. 勾选「单文件」「无控制台窗口」,需要图标就选
.ico。
一键打包,告别记命令。