gengx
This commit is contained in:
@@ -0,0 +1,56 @@
|
||||
# -*- 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
|
||||
Reference in New Issue
Block a user