inflearn logo
강의

Course

Instructor

Practice! Introduction to FastAPI

파이참 임포트 문제

Resolved

259

dksqodwns

27 asked

0

안녕하세요. fastapi를 사용해서 서버를 개발하고있는데, 한가지 불편한것이 있어서 여쭤보려고 합니다. 다름이 아니라 외부에 작성해놓은 함수를 import 할 때 생기는 문제인데요.

project

| - src

| - | - api

| - | - extension

| - | - exception

| - | - main.py

이렇게 프로젝트 트리가 구성되어 있다고 했을때, project 경로에서 uvicorn src.main:app 으로 서버를 실행하면 ModuleNotFoundError: No module named 'extension' 이런 에러가 발생합니다.

이게 import 를 할 때 src.from extension.~ import ~ 이렇게 되어있지 않고 import 할 때, 자동으로 from extension.~ import ~ 이렇게 import가 되어서 모듈을 찾지 못해 발생하는 에러인 것 같은데요.

혹시 자동으로 임포트 할 때부터 src.from extension.~ import ~ 이렇게 소스루트부터 import 하게 하는 설정이 따로 있을까요? 하나하나 적어주기가 너무 불편해서 여쭤봅니다 ㅠ

python 리팩토링 orm FastAPI pytest

Answer 1

0

qu3vipon

안녕하세요. 혹시 src 디렉토리를 Sources Root로 지정해주셨나요?

스크린샷 2024-11-05 오전 11.06.04.png.webp

0

dksqodwns

네 소스 디렉토리로 지정 했습니다..

image.png

 

0

qu3vipon

혹시 어떤 경로에서 서버를 실행하고 계시나요? src 디렉토리에서 실행하고 계신게 맞을까요?

0

dksqodwns

서버 실행은 src에서가 아닌 project 경로에서 uvicorn src.main:app 명령어로 실행하고 있습니다.

0

qu3vipon

서버를 src 디렉토리에서 uvicorn main:app으로 실행하시고, 경로를 바꿔보시겠어요? from extension.~ import ~

현재 src 디렉토리를 FastAPI의 source root로 사용하고 있습니다.

0

dksqodwns

매번 src로 이동해서 서버를 켜기가 좀 그래서, src.main:app 으로 켜고 있었는데 만약 이렇게 하고싶으면 project를 source root로 사용하면 될까요?

0

qu3vipon

네 그럼 대신 import 경로에 src를 반드시 명시해주셔야합니다 :)

FasAPI Swagger UI에서 단일조회 todo_id 를 사용했는데, 입력값에 1을 넣으니 오류가 뜹니다 ㅠ

0

87

2

DB 질문

0

81

2

Post API 강의 질문

0

55

2

post 작성 오류

0

106

3

uvicorn 종료 문제

0

436

2

왜 return타입이 ToDo라는 스트링인가요?

0

130

2

ORM 연관관계

0

109

2

Oracle DB 연결과 관련해 질문이 있습니다..

0

153

2

섹션 2, 3의 PATCH API의 차이점

0

132

1

ORM 테이블 생성

0

119

1

테스트 코드 오류

0

177

1

orm relationship 정의 중 해당 에러 발생 시 어떻게 고쳐야 하는걸까요

0

214

3

FastAPI 폴더 구조에 대해 질문이 있습니다.

0

412

2

질문 있습니다.

0

160

2

ORM 개념

0

133

1

mysql root 비밀번호 변경관련

0

295

2

[질문] patch API

0

151

3

디자인 패턴

0

128

1

main.py 리로드문제

0

235

2

인터프리터 오류

0

285

4

로그 저장에 대한 질문입니다.

0

100

1

Internal Server Error

0

240

2

PATCH API - 수정

0

198

2

INFO sqlalchemy.engine.Engine ROLLBACK

0

215

1