57 lines
1.9 KiB
Python
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
|