56 lines
1.8 KiB
Python
56 lines
1.8 KiB
Python
|
|
# make_version.py
|
||
|
|
import datetime
|
||
|
|
import os
|
||
|
|
|
||
|
|
def create_version_file():
|
||
|
|
# 1. 生成版本号 (示例:使用 年.月.日.0)
|
||
|
|
today = datetime.date.today()
|
||
|
|
# 格式:(2026, 1, 5, 0)
|
||
|
|
ver_tuple = (today.year, today.month, today.day, 0)
|
||
|
|
ver_str = f"{today.year}.{today.month}.{today.day}.0"
|
||
|
|
|
||
|
|
# 2. 定义版本信息结构 (PyInstaller 格式)
|
||
|
|
# 语言代码 2052 = 简体中文, 字符集 1200 = Unicode
|
||
|
|
content = f"""# UTF-8
|
||
|
|
VSVersionInfo(
|
||
|
|
ffi=FixedFileInfo(
|
||
|
|
filevers={ver_tuple},
|
||
|
|
prodvers={ver_tuple},
|
||
|
|
mask=0x3f,
|
||
|
|
flags=0x0,
|
||
|
|
OS=0x40004,
|
||
|
|
fileType=0x1,
|
||
|
|
subtype=0x0,
|
||
|
|
date=(0, 0)
|
||
|
|
),
|
||
|
|
kids=[
|
||
|
|
StringFileInfo(
|
||
|
|
[
|
||
|
|
StringTable(
|
||
|
|
u'080404b0',
|
||
|
|
[StringStruct(u'CompanyName', u'中能建西北院海上能源业务开发部'),
|
||
|
|
StringStruct(u'FileDescription', u'海上风电场集电线路设计优化系统'),
|
||
|
|
StringStruct(u'FileVersion', u'{ver_str}'),
|
||
|
|
StringStruct(u'InternalName', u'WindFarmOptimizer'),
|
||
|
|
StringStruct(u'LegalCopyright', u'Copyright (c) {today.year}'),
|
||
|
|
StringStruct(u'OriginalFilename', u'海上风电场集电线路设计优化系统.exe'),
|
||
|
|
StringStruct(u'ProductName', u'海上风电场集电线路设计优化系统'),
|
||
|
|
StringStruct(u'ProductVersion', u'{ver_str}')])
|
||
|
|
]),
|
||
|
|
VarFileInfo([VarStruct(u'Translation', [2052, 1200])])
|
||
|
|
]
|
||
|
|
)
|
||
|
|
"""
|
||
|
|
|
||
|
|
with open("version_info.txt", "w", encoding="utf-8") as f:
|
||
|
|
f.write(content)
|
||
|
|
|
||
|
|
# 3. 同时生成一个 python 文件供 gui.py 调用
|
||
|
|
with open("version.py", "w", encoding="utf-8") as f:
|
||
|
|
f.write(f'VERSION = "v{ver_str}"\n')
|
||
|
|
|
||
|
|
print(f"已生成版本信息文件: version_info.txt 和 version.py (版本: v{ver_str})")
|
||
|
|
|
||
|
|
if __name__ == "__main__":
|
||
|
|
create_version_file()
|