pyinstaller打包文件版本
时间: 2025-05-05 21:03:56 浏览: 36
### 如何通过 PyInstaller 设置生成文件的版本号
在使用 PyInstaller 进行 Python 脚本打包时,可以通过修改 `.spec` 文件来设置生成的可执行文件的版本信息。以下是实现这一功能的具体方法:
#### 修改 spec 文件以添加版本信息
当运行 `pyinstaller main.py` 命令时,PyInstaller 会自动生成一个名为 `<script_name>.spec` 的配置文件[^1]。为了向生成的可执行文件添加版本信息,需要编辑该 `.spec` 文件中的 `version_info` 参数。
`version_info` 是一个元组结构,定义了 Windows 可执行文件资源表中的版本字段。其格式如下所示:
```python
version_info=(<major>, <minor>, <sub_minor>, 'final', 0, '<comments>', '<company_name>', '<product_name>')
```
其中各参数含义分别为:
- `<major>`: 主版本号。
- `<minor>`: 次版本号。
- `<sub_minor>`: 补丁版本号。
- `'final'`: 版本状态(如 beta、alpha 或 final)。
- `0`: 构建编号。
- `<comments>`: 注释字符串。
- `<company_name>`: 公司名称。
- `<product_name>`: 产品名称。
例如,在 `.spec` 文件中可以这样设置版本信息:
```python
a = Analysis(['main.py'],
pathex=['.'],
binaries=[],
datas=[],
hiddenimports=[],
hookspath=[],
runtime_hooks=[],
excludes=[],
win_no_prefer_redirects=False,
win_private_assemblies=False,
cipher=None)
# 添加 version_info 配置
exe = EXE(a.scripts,
a.binaries,
a.zipfiles,
a.datas,
name='MyApp',
debug=False,
bootloader_ignore_signals=False,
strip=False,
upx=True,
console=True,
version_info=(1, 0, 0, 'final', 0, '', 'YourCompany', 'ProductName'))
```
上述代码片段设置了生成的可执行文件版本为 `1.0.0`,并指定了公司名和产品名等附加信息。
#### 使用命令行选项指定版本信息
除了手动编辑 `.spec` 文件外,还可以通过创建一个单独的 `.rc` 文件(Windows 资源文件),并将它传递给 PyInstaller 来完成版本信息的设定。`.rc` 文件的内容类似于以下形式:
```plaintext
VS_VERSION_INFO VERSIONINFO
FILEVERSION 1,0,0,0
PRODUCTVERSION 1,0,0,0
FILEFLAGSMASK 0x3fL
#ifdef DEBUG
FILEFLAGS 0x1L
#else
FILEFLAGS 0x0L
#endif
FILEOS 0x40004L
FILETYPE 0x1L
FILESUBTYPE 0x0L
BEGIN
BLOCK "StringFileInfo"
BEGIN
BLOCK "040904B0"
BEGIN
VALUE "CompanyName", "Your Company Name\0"
VALUE "FileDescription", "Application Description\0"
VALUE "FileVersion", "1.0.0.0\0"
VALUE "InternalName", "AppName\0"
VALUE "LegalCopyright", "© Your Company. All rights reserved.\0"
VALUE "OriginalFilename", "AppName.exe\0"
VALUE "ProductName", "Product Name\0"
VALUE "ProductVersion", "1.0.0.0\0"
END
END
BLOCK "VarFileInfo"
BEGIN
VALUE "Translation", 0x409, 1200
END
END
```
之后,可以在调用 PyInstaller 时通过 `--resource` 参数引入这个 `.rc` 文件:
```bash
pyinstaller --resource=version.rc main.py
```
这一步骤允许更灵活地管理复杂的版本控制需求[^4]。
---
### 注意事项
如果项目依赖于 Playwright,则需要注意 Chromium 浏览器的版本匹配问题。应确保环境变量 `PLAYWRIGHT_BROWSERS_PATH=0` 已正确定义,以便让 Playwright 自动下载适合当前系统的浏览器版本[^2]。
此外,对于 UPX 压缩工具的路径配置,推荐将其放置在与 Python 解释器相同的目录下,并验证压缩效果是否满足预期[^3]。
---
阅读全文
相关推荐


















