pyinstaller+UPX压缩打包生成exe

使用 openpyxl 库来操作 excel 表格,采用单文件模式打包代码生成的文件体积较大。
使用目录模式(而非单文件)可显著减小打包体积,同时避免单文件模式的运行时解压开销。以下是针对 main.py 的优化打包步骤:

步骤 1:使用纯净虚拟环境

确保在干净的环境中打包,避免冗余依赖:

python -m venv venv
venv\Scripts\activate
pip install openpyxl pyinstaller

步骤 2:生成并优化 spec 文件

生成目录模式的 spec 文件:

pyi-makespec --onedir main.py

编辑 main.spec 文件(关键优化):

... 保留自动生成的代码 ...

a = Analysis(
   ['main_openpyxl.py'],
   pathex=[],
   binaries=[],
   datas=[],
   hiddenimports=[],
   # 排除所有非必要模块(重点优化)
   excludes=[
       'tkinter', 'unittest', 'doctest', 'pdb', 'inspect',
       'setuptools', 'distutils', 'pkg_resources', 'pywin32',
       'cryptography', 'ssl', 'pyreadline', 'numpy', 'matplotlib'
   ],
   # ... 保留其他参数 ...
)

# 启用 UPX 压缩(需先下载 UPX 并指定路径)
pyz = PYZ(a.pure, a.zipped_data, compress=2)

exe = EXE(
   pyz,
   a.scripts,
   [],
   exclude_binaries=True,
   name='main',
   debug=False,
   bootloader_ignore_signals=False,
   strip=True,  # 移除调试符号
   upx=True,    # 启用 UPX 压缩
   console=True,  # 如需无控制台窗口,改为 False
)

coll = COLLECT(
   exe,
   a.binaries,
   a.zipfiles,
   a.datas,
   strip=False,
   upx=True,    # 对收集的文件也启用 UPX 压缩
   upx_exclude=[],
   name='main',
)

步骤 3:执行打包命令

pyinstaller --upx-dir "C:\path\to\upx" main.spec

注意:将 “C:\path\to\upx” 替换为实际 UPX 解压路径(从 UPX 官网 下载 Windows 版本)。

步骤 4:打包后文件结构

生成的文件位于 dist\main 目录,结构如下:

dist\main\
├─ main.exe       # 可执行文件
└─ _internal      #其他精简后的系统依赖文件
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值