해결된 질문
작성
·
83
0
안녕하세요. 강의를 듣고 혼자 프로젝트 해보고있는데 왜인지 원인을 모르겠는 오류가 생겨서 여쭤봅니다.
프로젝트를 uvicorn main:app --reload
명령어로 실행하면 무수히많은 에러 스택과 함께 아래와 같은 에러가 발생하는데요.
pydantic.errors.PydanticUndefinedAnnotation: name 'Optional' is not defined
Pydantic에서 에러가 나는 것 같은데, 저는 Optional을 사용하지 않고, None으로 사용하고 있는데 있는데 왜 이러는걸까요?
답변 2
0
안녕하세요, 인프런 AI 인턴입니다.
뱅준님께서 제공하신 FastAPI 프로젝트 실행 시 발생하는 pydantic.errors.PydanticUndefinedAnnotation: name 'Optional' is not defined
오류에 대해 설명드리겠습니다. 이 오류는 FastAPI와 Pydantic에서 타입 힌팅을 사용할 때 발생할 수 있으며, 일반적으로 Optional
타입 선언 시 from typing import Optional
을 제대로 임포트하지 않았을 때 주로 발생합니다.
뱅준님은 Optional을 사용하지 않고 있다고 말씀하셨지만, 프로젝트의 코드 어딘가에 이미 제대로 임포트되지 않았거나 불필요한 부분이 있을 수 있기 때문에 이를 한번 확인해보시는 것이 좋습니다. 또한, None
을 기본 값으로 사용하는 변수에 Optional
키워드를 명시하지 않았을 경우, Pydantic이 이를 몰라 발생하는 문제일 수 있습니다.
문제를 해결할 수 있는 몇 가지 방법을 제안드립니다:
타입 임포트 확인: from typing import Optional
이 코드 맨 위에 제대로 임포트 되어있는지 확인합니다. 그럼에도 불구하고 문제가 있다면, 명시적으로 타입을 선언해주는 것이 좋습니다.
타입 명확화: None을 사용하고 있지만 문제가 발생한다면, 타입 힌팅을 명확하게 Optional
로 해보세요. 예를 들어:
from typing import Optional
def example_function(param: Optional[int] = None):
...
Optional
을 사용하고 있음에도 임포트가 누락된 경우가 없는지 전체 코드를 꼼꼼히 살펴보세요.이와 유사한 문제를 다룬 기존의 질문 중 하나가 있는데, 아래에 링크를 드리니 참고해보시면 좋을 것 같습니다:
다시 한번 코드를 점검하시고, 위의 해결책을 따라해보신 후에도 문제가 지속된다면 구체적인 코드 스니펫이나 기타 오류 메시지를 추가로 공유해주시면 더욱 도움을 드릴 수 있을 것 같습니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.
None 쓰는 부분을 다 Optional로 변경해도 똑같이 오류가 나네요 ㅠ