import os import sys from pathlib import Path PROJECT_ROOT = os.path.abspath(os.path.join(os.path.dirname(__file__), "../../")) def get_data_dir(): data_path = os.path.join(PROJECT_ROOT, "data") os.makedirs(data_path, exist_ok=True) return data_path def get_model_dir(subdir: str = "whisper") -> str: # 判断是否为打包状态(PyInstaller) if getattr(sys, 'frozen', False): # exe 执行,放在 APPDATA 或 ~/.cache 下 base_dir = os.path.join(os.getenv("APPDATA") or str(Path.home()), "BiliNote", "models") else: # 开发时,相对项目根目录 base_dir = os.path.abspath(os.path.join(os.path.dirname(__file__), "../../models")) path = os.path.join(base_dir, subdir) os.makedirs(path, exist_ok=True) return path