pyinstaller打包笔记
pyinstaller打包笔记
一般流程
使用命令把代码直接打包成一个可执行文件
pyinstaller --windowed --onefile mutilprocess_ean13_non_empty_lining_gui_manager.py
手动添加依赖(以牺牲体积为前提,最方便的方法)
出现问题的话可以使用
pyinstaller mutilprocess_ean13_non_empty_lining_gui_manager.py
这样能够直观的查看_internal
文件夹里打包了什么,没打包什么
运行了第一次命令后,会自动生成一个同名的.spec
文件,在这个例子中是mutilprocess_ean13_non_empty_lining_gui_manager.spec
修改spec文件,添加缺失的依赖,我这里直接添加整个库进去了,这样最快速最暴力,缺点是体积大
# -*- mode: python ; coding: utf-8 -*-
a = Analysis(
['mutilprocess_ean13_gui_manager.py'],
pathex=[],
binaries=[],
datas=[(r'C:\Users\Administrator\PycharmProjects\货架\arial.ttf', 'fonts'), (r'C:\Users\Administrator\PycharmProjects\货架\arialbd.ttf', 'fonts'), (r'C:\Users\Administrator\PycharmProjects\货架\DejaVuSans.ttf', 'fonts'), (r'C:\Users\Administrator\PycharmProjects\货架\ariblk.ttf', 'fonts'),(r'C:\Users\Administrator\PycharmProjects\货架\.venv\Lib\site-packages\tkinterdnd2', 'tkinterdnd2'),(r'C:\Users\Administrator\PycharmProjects\货架\.venv\Lib\site-packages\pylibdmtx', 'pylibdmtx'),(r'C:\Users\Administrator\PycharmProjects\货架\.venv\Lib\site-packages\reportlab', 'reportlab')],
hiddenimports=[],
hookspath=[],
hooksconfig={},
runtime_hooks=[],
excludes=[],
noarchive=False,
optimize=0,
)
pyz = PYZ(a.pure)
exe = EXE(
pyz,
a.scripts,
a.binaries,
a.datas,
[],
name='mutilprocess_ean13_gui_manager',
debug=False,
bootloader_ignore_signals=False,
strip=False,
upx=True,
upx_exclude=[],
runtime_tmpdir=None,
console=False,
disable_windowed_traceback=False,
argv_emulation=False,
target_arch=None,
codesign_identity=None,
entitlements_file=None,
)
添加完依赖后,重新生成文件
pyinstaller --noconfirm mutilprocess_ean13_non_empty_lining_gui_manager.spec
最后修改于 2025-05-09