fix: resolve YAML config path relative to project root

Ensure config/settings.yaml can be found when running from any working
directory by resolving the path relative to the settings.py file location
rather than the current working directory.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
Misaka_Company
2026-05-12 09:40:46 +08:00
parent 8292de7747
commit a6873ae2ee

View File

@@ -45,7 +45,12 @@ class Settings(BaseModel):
def load_settings(config_path: str = "config/settings.yaml") -> Settings:
"""加载 YAML 配置文件"""
# Resolve relative to the project root (where config/ directory exists)
path = Path(config_path)
if not path.is_absolute():
# __file__ is config/settings.py, so parent.parent gives us project root
project_root = Path(__file__).resolve().parent.parent
path = project_root / config_path
if not path.exists():
raise FileNotFoundError(
f"配置文件不存在: {config_path}\n"