Files
2026-08-27 14:04:28 +08:00

57 lines
1.9 KiB
Python

# -*- coding: utf-8 -*-
"""
企业微信导出助手 - 一键打包脚本
用法: python build.py (或双击 build.bat)
输出: dist/企业微信导出助手.exe
"""
import os
import shutil
import subprocess
BASE = os.path.dirname(os.path.abspath(__file__))
PYTHON = r"C:\Users\pc\.workbuddy\binaries\python\envs\gui311\Scripts\python.exe"
DIST = os.path.join(BASE, "dist")
build_dir = os.path.join(BASE, "build") # PyInstaller 中间产物, 每次自动覆盖, 无需手动清理
cmd = [
PYTHON, "-m", "PyInstaller",
"--onefile", # 单文件
"--windowed", # 无控制台窗口 (GUI 应用)
"--name", "企业微信导出助手",
"--icon", "app_icon.png",
"--add-data", "app_icon.png;.",
"--hidden-import", "wxwork_export_media",
"--hidden-import", "wxwork_voice2text",
# 语音转文字 ASR 兜底 (懒加载, 未勾选时不影响启动速度)
"--hidden-import", "pilk",
"--hidden-import", "faster_whisper",
"--hidden-import", "ctranslate2",
"--hidden-import", "tokenizers",
"--hidden-import", "av",
"--hidden-import", "onnxruntime",
"wxwork_gui.py",
"--distpath", DIST,
"--workpath", build_dir,
"--specpath", BASE,
]
print(">> 执行:", " ".join(cmd))
subprocess.check_call(cmd, cwd=BASE)
# exe 运行时需要从同目录读取密钥文件, 打包后自动同步一份
src_key = os.path.join(BASE, "wxwork_keys.json")
if os.path.exists(src_key):
shutil.copy2(src_key, os.path.join(DIST, "wxwork_keys.json"))
print(">> 已同步 wxwork_keys.json 到 dist/")
exe_path = os.path.join(DIST, "企业微信导出助手.exe")
print("")
print("打包完成: " + exe_path)
print("文件大小: %.1f MB" % (os.path.getsize(exe_path) / 1024 / 1024))
# 自动打开输出目录, 方便直接看到 exe
try:
os.startfile(DIST) # type: ignore[attr-defined]
print("已自动打开输出目录: " + DIST)
except Exception:
pass