You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Pydantic v2加载.env时忽略嵌套模型变量问题求助

解决方案

核心问题:参数名拼写错误

你的SettingsConfigDict中使用了错误的参数名:env_nested_delimeter,正确的参数名是env_nested_delimiter(少写了一个字母i)。这个拼写错误导致Pydantic无法识别嵌套环境变量的分隔规则,因此无法将PROJECT__NAME解析到project.name字段中,最终触发必填字段缺失的验证错误。

修正后的settings.py代码

from pydantic import BaseModel
from pydantic_settings import BaseSettings, SettingsConfigDict


class ProjectConfig(BaseModel):
    name: str


class AppSettings(BaseSettings):
    model_config = SettingsConfigDict(
        env_file=".env",
        case_sensitive=False,
        env_nested_delimiter="__",  # 修正拼写错误
    )

    project: ProjectConfig


app_settings = AppSettings()

额外优化建议

  1. 简化.env文件格式:可以去掉值的引号,避免潜在的解析歧义:
    PROJECT__NAME=Some name
    
  2. 路径验证:由于你从项目根目录执行命令,env_file=".env"会正确加载根目录下的.env文件,无需调整路径。

验证效果

修正后重新执行python -m namespace.subnamespace.main,应该会正常输出Some name,不再触发ValidationError。

内容的提问来源于stack exchange,提问作者cosmicKXCkitten

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.12 00:33:29