使用 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 #其他精简后的系统依赖文件
1万+

被折叠的 条评论
为什么被折叠?



