original push
This commit is contained in:
72
algorithm_V0/datacollect/build_with_copy.py
Normal file
72
algorithm_V0/datacollect/build_with_copy.py
Normal file
@@ -0,0 +1,72 @@
|
||||
import os
|
||||
import shutil
|
||||
import subprocess
|
||||
import sys
|
||||
|
||||
def main():
|
||||
# 1. 定义路径
|
||||
BASE_DIR = os.path.dirname(os.path.abspath(__file__))
|
||||
DIST_DIR = os.path.join(BASE_DIR, 'dist')
|
||||
APP_NAME = 'Depression_Decoder'
|
||||
|
||||
MODEL_SRC = os.path.join(BASE_DIR, 'model')
|
||||
RAW_DATA_SRC = os.path.join(BASE_DIR, 'raw_data')
|
||||
|
||||
# 2. 清理旧构建
|
||||
print("[1/3] Cleaning up old builds...")
|
||||
if os.path.exists(DIST_DIR):
|
||||
try:
|
||||
shutil.rmtree(DIST_DIR)
|
||||
print(" Cleaned dist/")
|
||||
except Exception as e:
|
||||
print(f" Warning: Could not clean dist/: {e}")
|
||||
|
||||
BUILD_DIR = os.path.join(BASE_DIR, 'build')
|
||||
if os.path.exists(BUILD_DIR):
|
||||
try:
|
||||
shutil.rmtree(BUILD_DIR)
|
||||
print(" Cleaned build/")
|
||||
except Exception as e:
|
||||
print(f" Warning: Could not clean build/: {e}")
|
||||
|
||||
# 3. 运行 PyInstaller
|
||||
print("[2/3] Running PyInstaller...")
|
||||
cmd = [
|
||||
"pyinstaller",
|
||||
"build_algorithm.spec",
|
||||
"--clean",
|
||||
"--noconfirm"
|
||||
]
|
||||
|
||||
try:
|
||||
subprocess.check_call(cmd, shell=True)
|
||||
except subprocess.CalledProcessError:
|
||||
print("Error: PyInstaller failed.")
|
||||
sys.exit(1)
|
||||
|
||||
# 4. 复制外部资源 (如果存在)
|
||||
print("[3/3] Copying external resources...")
|
||||
|
||||
# 确保 dist 目录存在 (pyinstaller 应该已经创建了)
|
||||
if not os.path.exists(DIST_DIR):
|
||||
os.makedirs(DIST_DIR)
|
||||
|
||||
for src_path, folder_name in [(MODEL_SRC, 'model'), (RAW_DATA_SRC, 'raw_data')]:
|
||||
dst_path = os.path.join(DIST_DIR, folder_name)
|
||||
if os.path.exists(src_path):
|
||||
try:
|
||||
if os.path.exists(dst_path):
|
||||
shutil.rmtree(dst_path)
|
||||
shutil.copytree(src_path, dst_path)
|
||||
print(f" Copied {folder_name} to dist/")
|
||||
except Exception as e:
|
||||
print(f" Error copying {folder_name}: {e}")
|
||||
else:
|
||||
print(f" Note: {folder_name} source not found at {src_path}, skipping.")
|
||||
|
||||
print("\n" + "="*50)
|
||||
print(f"SUCCESS! Executable is in: {DIST_DIR}")
|
||||
print("="*50)
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
Reference in New Issue
Block a user