Pyinstaller-Spec文件使用

 前言

        PyInstaller 是一个用于将 Python 脚本打包成独立的可执行文件的工具。使用 PyInstaller,您可以将 Python 应用程序转换为可执行文件,而无需用户安装 Python 解释器或任何额外的库。PyInstaller库在使用上已经足够简单了, 提供了丰富的选项和配置参数,允许用户对打包过程进行定制,以满足不同的需求。

Spec说明

        PyInstaller 的 spec 文件是一个配置文件,用于指定打包 Python 脚本时的详细设置。通过 spec 文件,你可以指定要打包的文件、依赖项、输出目录等信息。

Spec配置说明

以下是 spec 文件的一些常见配置项及其含义

  1. Analysis:包含了对要打包的 Python 脚本进行分析的配置选项。

    • hiddenimports:指定隐藏导入的模块,即使 PyInstaller 没有检测到它们的使用。
    • hookspath:指定用于查找钩子文件的路径。
    • runtime_hooks:指定在运行时加载的自定义 hook 文件。
    • excludes:指定不包含在打包中的模块。
    • datas:指定要包含在输出中的数据文件。
  2. Bundled files:包含了要打包的文件及其相关配置选项。

    • pathex:指定要包含在打包中的文件或目录的路径。
    • binaries:指定要包含在输出中的二进制文件。
  3. Runtime options:包含了运行时选项的配置。

    • console:指定是否以控制台应用程序的形式运行。
    • windowed:指定是否以窗口应用程序的形式运行。
    • icon:指定应用程序的图标文件。
    • other:其他运行时选项,如设置环境变量等。
  4. Output options:包含了输出选项的配置。

    • name:指定输出文件的名称。
    • path:指定输出文件的路径。
    • onefile:指定是否将所有文件打包成一个单独的可执行文件。
  5. Debugging options:包含了调试选项的配置。

    • strip:指定是否剥离可执行文件中的调试信息。
    • upx:指定是否使用 UPX 压缩可执行文件。
  6. Windows-specific options:包含了针对 Windows 平台的特定配置选项。

    • company_name:指定应用程序的公司名称。
    • product_name:指定应用程序的产品名称。
    • product_version:指定应用程序的版本号。

创建Spec文件 

在命令行中,进入你的 Python 项目所在的目录,并执行以下命令创建 spec 文件

pyi-makespec your_script.py

Spec打包 

运行 PyInstaller 命令来根据 spec 文件进行打包

这将会根据 spec 文件中指定的配置,将你的 Python 应用程序打包成可执行文件。

pyinstaller your_script.spec

演示

# -*- mode: python -*-

block_cipher = None

# 定义生成的可执行文件的名称
a = Analysis(['my_script.py'],
             pathex=['/path/to/your/python/modules'],  # Python 模块的搜索路径
             binaries=[],
             datas=[('/path/to/data/file.txt', '.')],  # 需要包含的数据文件
             hiddenimports=[],
             hookspath=[],
             runtime_hooks=[],
             excludes=[],
             win_no_prefer_redirects=False,
             win_private_assemblies=False,
             cipher=block_cipher,
             noarchive=False)

# 指定生成的可执行文件的名称为 my_program
pyz = PYZ(a.pure, a.zipped_data,
             cipher=block_cipher)

exe = EXE(pyz,
          a.scripts,
          a.binaries,
          a.zipfiles,
          a.datas,
          name='my_program',  # 可执行文件的名称
          debug=False,
          strip=False,
          upx=True,
          console=True )  # 是否为控制台应用程序

  • 11
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Marst·Writer

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值