提交必要文件
This commit is contained in:
@@ -0,0 +1,59 @@
|
||||
from __future__ import annotations
|
||||
|
||||
import shutil
|
||||
import subprocess
|
||||
import sys
|
||||
from pathlib import Path
|
||||
|
||||
|
||||
PROJECT_DIR = Path(__file__).resolve().parent
|
||||
DIST_DIR = PROJECT_DIR / "dist"
|
||||
BUILD_DIR = PROJECT_DIR / "build"
|
||||
SPEC_FILE = PROJECT_DIR / "VideoConvert.spec"
|
||||
ENTRY_FILE = PROJECT_DIR / "videoconvert_gui.py"
|
||||
EXE_NAME = "VideoConvert"
|
||||
|
||||
|
||||
def remove_if_exists(path: Path) -> None:
|
||||
if path.is_dir():
|
||||
shutil.rmtree(path, ignore_errors=True)
|
||||
elif path.exists():
|
||||
path.unlink()
|
||||
|
||||
|
||||
def main() -> int:
|
||||
remove_if_exists(DIST_DIR)
|
||||
remove_if_exists(BUILD_DIR)
|
||||
remove_if_exists(SPEC_FILE)
|
||||
|
||||
command = [
|
||||
sys.executable,
|
||||
"-m",
|
||||
"PyInstaller",
|
||||
"--noconfirm",
|
||||
"--clean",
|
||||
"--onefile",
|
||||
"--windowed",
|
||||
"--name",
|
||||
EXE_NAME,
|
||||
str(ENTRY_FILE),
|
||||
]
|
||||
|
||||
print("开始打包 exe...")
|
||||
print(" ".join(f'"{part}"' if " " in part else part for part in command))
|
||||
completed = subprocess.run(command, cwd=PROJECT_DIR)
|
||||
if completed.returncode != 0:
|
||||
return completed.returncode
|
||||
|
||||
exe_path = DIST_DIR / f"{EXE_NAME}.exe"
|
||||
if exe_path.exists():
|
||||
print(f"\n打包完成:{exe_path}")
|
||||
print("首次启动会自动在 exe 同级目录创建 input/、output/、test.txt、pass_test.txt、logs、reports 等默认结构。")
|
||||
else:
|
||||
print("\nPyInstaller 已执行,但没有找到生成的 exe。")
|
||||
return 1
|
||||
return 0
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
raise SystemExit(main())
|
||||
Reference in New Issue
Block a user