启动FastAPI-SQLModel样板代码遇Pydantic验证错误,求解决方法
问题:FastAPI-SQLModel样板启动时Pydantic验证失败
我是JavaScript技术栈开发者,尝试使用fastapi-sqlmodel作为项目样板代码。该仓库的快速启动文档仅说明了启动命令(Python方式:pipenv run python asgi.py;Docker方式:docker build -t sqlmodel-api:latest . && docker run -p 8080:8080 sqlmodel-api:latest)及OpenAPI地址,但未提及安装步骤。我自行执行pip install和pipenv shell后,运行启动命令触发如下Pydantic验证错误:
File "/Users/userB/Desktop/fastapi-sql-blog/asgi.py", line 3, in <module> from api.app import create_app File "/Users/userB/Desktop/fastapi-sql-blog/api/app.py", line 3, in <module> from api.config import settings File "/Users/userB/Desktop/fastapi-sql-blog/api/config.py", line 21, in <module> settings = Settings() File "/Users/userB/.local/share/virtualenvs/fastapi-sql-blog-a9YFiCXV/lib/python3.9/site-packages/pydantic/env_settings.py", line 36, in __init__ super().__init__( File "/Users/userB/.local/share/virtualenvs/fastapi-sql-blog-a9YFiCXV/lib/python3.9/site-packages/pydantic/main.py", line 406, in __init__ raise validation_error pydantic.error_wrappers.ValidationError: 2 validation errors for Settings ENV field required (type=value_error.missing) VERSION field required (type=value_error.missing)
问题原因
项目的Settings类(定义在api/config.py中)要求必须提供ENV和VERSION两个环境变量,但启动时未配置这两个变量,导致Pydantic验证失败。另外,直接用pip install安装依赖没有遵循项目的版本约束,也可能引发潜在问题。
解决步骤
- 正确安装依赖:使用项目自带的
Pipfile安装依赖,确保版本匹配:pipenv install - 配置环境变量:
方法一:在项目根目录创建.env文件,添加以下内容:
方法二:启动时临时注入环境变量:ENV=development VERSION=1.0.0ENV=development VERSION=1.0.0 pipenv run python asgi.py - 重新启动项目:执行启动命令,验证是否正常运行。
内容的提问来源于stack exchange,提问作者Alwaysblue
相关产品推荐
相关产品推荐

