python

打包文件.spec

引言

打包命令pyinstaller main.spec,这个意思是告诉pyinstaller要根据配置文件main.spec的内容参数进行打包

.spec文件内容

# -*- mode: python ; coding: utf-8 -*-

a = Analysis(
    ['main.py'],
    pathex=[],
    binaries=[],
    datas=[('msedgedriver.exe', '.'), ('favicon.ico', '.')],
    hiddenimports=[],
    hookspath=[],
    hooksconfig={},
    runtime_hooks=[],
    excludes=[],
    noarchive=False,
    optimize=0,
    debug=False
)
pyz = PYZ(a.pure)

exe = EXE(
    pyz,
    a.scripts,
    a.datas,
    [],
    exclude_binaries=True,
    name='采集助手',
    debug=False,
    bootloader_ignore_signals=False,
    strip=False,
    upx=True,
    console=False,
    disable_windowed_traceback=False,
    argv_emulation=False,
    target_arch=None,
    codesign_identity=None,
    entitlements_file=None,
    dist_dir="E:/采集助手/python/dist",
    work_dir="E:/采集助手/python/work",
    icon="E:/采集助手/python/favicon.ico"
)
coll = COLLECT(
    exe,
    a.binaries,
    a.datas,
    strip=False,
    upx=True,
    upx_exclude=[],
    name='spider-helper',
)

参数说明

  • Analysis:用于配置打包过程中的分析参数,包括源代码路径、依赖项、资源文件等。

  • PYZ:用于配置生成的压缩文件,包括源代码和依赖项。

  • EXE:用于配置生成的可执行文件,包括压缩文件、名称、调试选项等。

  • COLLECT:指定了要收集的文件和数据,包括生成的可执行文件、依赖的二进制文件、数据文件等,以及最终生成的输出路径

其他子参数说明

  • Analysis.binaries:用于指定需要包含在可执行文件中的二进制文件。
  • Analysis.datas:用于指定需要包含在可执行文件中的非Python文件。常用的配置,重点!!!
    配置格式如下

    datas=[
    ("本地文件路径,可以是相对路径,也可以是绝对路径","打包后的路径,必须是相对路径"),
    ("E:/test/test.txt","."),
    ("E:/采集助手/python/favicon.ico",".")
    ]
    
  • Analysis.hiddenimports:用于指定需要显式导入的隐藏模块。

  • Analysis.excludes:用于排除不需要的模块或包。
  • Analysis.console:用于指定生成的可执行文件是否为控制台应用程序。