import os from typing import ClassVar # <--- 1. 导入这个 from pydantic_settings import BaseSettings, SettingsConfigDict class Settings(BaseSettings): DB_USER: str DB_PASS: str DB_HOST: str DB_PORT: str = "5432" DB_NAME: str DASHSCOPE_API_KEY: str FIRECRAWL_API_KEY: str CANDIDATE_NUM: int = 50 # ========================================================= # 【核心修复】加上 ClassVar 类型注解 # ========================================================= BASE_DIR: ClassVar[str] = os.path.dirname(os.path.dirname(os.path.dirname(os.path.abspath(__file__)))) ENV_PATH: ClassVar[str] = os.path.join(BASE_DIR, ".env") # 使用绝对路径加载 model_config = SettingsConfigDict(env_file=ENV_PATH, extra="ignore") @property def DATABASE_URL(self) -> str: return f"postgresql+psycopg2://{self.DB_USER}:{self.DB_PASS}@{self.DB_HOST}:{self.DB_PORT}/{self.DB_NAME}" settings = Settings()