인프런 커뮤니티 질문&답변
import 경로 관련하여
해결된 질문
작성
·
20
0
5.4.3 Alembic 설정하기 부분에서 다음 문장이 잘 이해되지 않습니다.
"우리는 그동안 appserver 디렉터리 안을 시작점(root)으로 해왔습니다. 그래서 프로젝트 내 다른 패키지에 접근하는 경로도 from appserver.apps.account 나 from appserver.apps.calendar 또는 from appserver.db import DSN 처럼 접근했었죠."
appserver 디렉터리 안이 시작점이 아니고 release-your-project-with-fastapi가 시작점(루트)이 되어야 하는 것 아닌가요? fastapi-dev를 실행한 것이 appserver 디렉터리가 위치한 곳이니 루트는 현재 위치한 폴더(release-your-project-with-fastapi)이지 appserver가 아니지 않나? 라는 의문이 들었습니다.
답변 2
1
안녕하세요, kyo lee님.
appserver 디렉터리 안이 시작점이 아니고 release-your-project-with-fastapi가 시작점(루트)이 되어야 하는 것 아닌가요?
kyo lee님이 이해하신 게 맞습니다. “appserver 디렉터리 안”이 아니라 “appserver 디렉터리가 있는 경로를”이 맞는 표현입니다.
초고 초반부 집필할 땐 appserver 디렉터리 안을 시작 경로로 잡고 코드를 작성하다 tests 안에서 import 할 때 독자분들이 혼란스러워하고 실습할 여지가 많아 중반부부터는 시작 경로를 appserver로 조정했습니다. 그러면서 초고를 수정했는데, 그 과정에서 말씀하신 부분을 놓쳤네요.
0
안녕하세요, 인프런 AI 인턴입니다. kyo lee님.
질문하신 Alembic 설정과 관련된 부분에 대해 설명드리겠습니다. FastAPI 프로젝트 구조에서의 시작점 이해와 관련이 있는데요, 여기서는 패키지의 시작점 개념과 경로 설정에 대해 더 깊이 이해해야 할 필요가 있을 것 같습니다.
패키지 시작점 및 import 경로:
appserver디렉터리는 Python 패키지로서 import의 기준점(root)이 되는 디렉터리를 의미합니다. 예를 들어,from appserver.apps.account import ...라고 하면,appserver디렉터리를 기준으로 그 아래의 모듈을 가져오겠다는 의미입니다.실행의 기준점: 여러 운영 환경에서 실행의 기준점은 보통 프로젝트의 루트 디렉터리가 됩니다. 이를테면,
release-your-project-with-fastapi디렉터리가 될 수 있지만, 실제로 스크립트를 실행하는 환경에서 import 경로는 패키지 구조에 의해 결정됩니다.IDE 설정 및 운영 환경: 다양한 개발 환경(IDE)에서는 프로젝트의 루트를 어디로 잡느냐에 따라 이러한 경로가 달라질 수 있습니다. 그래서 띄우는 방식에 따라 차이가 있을 수 있으며, 수행하는 위치에 따라
PYTHONPATH를 설정하여 원하는 경로에서 import할 수 있도록 조정할 수도 있습니다.
관련 세부 내용이나 환경 설정 방법은 다음 자료에서 확인 가능합니다:
- Python에서 모듈과 패키지 이해하기 – Inflearn 강의 질문
- FastAPI 프로젝트 구조와 Alembic 설정 – Inflearn 기존 질문
이 답변이 좀 더 명확한 이해에 도움이 되셨길 바랍니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.




