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

使用FastAPI+SQLAlchemy+Pydantic构建PostgreSQL库遇模块错误求助

问题解决指南

一、ModuleNotFoundError: No module named 'sql_app' 错误修复

  • 检查工作目录:运行uvicorn sql_app.main:app --reload时,终端必须处于sql_app目录的父目录下。比如你的项目结构是project_root/sql_app/,就需要在project_root目录执行命令,不能进入sql_app内部运行。
  • 确认__init__.py存在:sql_app目录下必须包含__init__.py文件(可以是空文件),Python需要这个文件识别该目录为可导入的包。
  • 配置Python路径:如果项目不在Python默认搜索路径,可通过环境变量指定:
    • Linux/macOS:export PYTHONPATH=/path/to/your/project_root
    • Windows:set PYTHONPATH=C:\path\to\your\project_root
      设置后再重新运行uvicorn命令。

二、Pydantic嵌套模型定义示例

假设你的my_car_dict是如下嵌套结构:

my_car_dict = {
    "brand": "Tesla",
    "model": "Model 3",
    "year": 2023,
    "specs": {
        "max_speed": 225,
        "battery_capacity": 75,
        "features": ["autopilot", "heated seats"]
    }
}

对应的嵌套模型定义方式:

from pydantic import BaseModel
from typing import List

# 定义嵌套子模型
class CarSpecs(BaseModel):
    max_speed: int
    battery_capacity: int
    features: List[str]

# 定义主模型,引用子模型作为字段类型
class Car(BaseModel):
    brand: str
    model: str
    year: int
    specs: CarSpecs

# 验证并转换字典数据
validated_car = Car(**my_car_dict)

多层嵌套的话,只需逐层定义子模型,再在父模型中引用对应子模型即可,Pydantic会自动处理嵌套结构的校验与解析。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.12 05:52:40