前言
PyInstaller 是一个用于将 Python 脚本打包成独立的可执行文件的工具。使用 PyInstaller,您可以将 Python 应用程序转换为可执行文件,而无需用户安装 Python 解释器或任何额外的库。PyInstaller库在使用上已经足够简单了, 提供了丰富的选项和配置参数,允许用户对打包过程进行定制,以满足不同的需求。
目录
Spec说明
PyInstaller 的 spec 文件是一个配置文件,用于指定打包 Python 脚本时的详细设置。通过 spec 文件,你可以指定要打包的文件、依赖项、输出目录等信息。
Spec配置说明
以下是 spec 文件的一些常见配置项及其含义
Analysis:包含了对要打包的 Python 脚本进行分析的配置选项。
hiddenimports
:指定隐藏导入的模块,即使 PyInstaller 没有检测到它们的使用。hookspath
:指定用于查找钩子文件的路径。runtime_hooks
:指定在运行时加载的自定义 hook 文件。excludes
:指定不包含在打包中的模块。datas
:指定要包含在输出中的数据文件。Bundled files:包含了要打包的文件及其相关配置选项。
pathex
:指定要包含在打包中的文件或目录的路径。binaries
:指定要包含在输出中的二进制文件。Runtime options:包含了运行时选项的配置。
console
:指定是否以控制台应用程序的形式运行。windowed
:指定是否以窗口应用程序的形式运行。icon
:指定应用程序的图标文件。other
:其他运行时选项,如设置环境变量等。Output options:包含了输出选项的配置。
name
:指定输出文件的名称。path
:指定输出文件的路径。onefile
:指定是否将所有文件打包成一个单独的可执行文件。Debugging options:包含了调试选项的配置。
strip
:指定是否剥离可执行文件中的调试信息。upx
:指定是否使用 UPX 压缩可执行文件。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 ) # 是否为控制台应用程序