인프런 커뮤니티 질문&답변

J군님의 프로필 이미지
J군

작성한 질문수

가장 빠른 풀스택: 파이썬 백엔드와 웹기술 부트캠프 (flask/플라스크와 백엔드 기본) [풀스택 Part1-1]

Model 과 Control 구현하기

파일 임포트 from 문의

작성

·

303

1

안녕하세요. 

제가 수업을 듣다가 놓친 부분이 있는 건지 잘 모르겠네요.

구글링을 통해서 해결할 수 있는 방법은 알겠는데요.

블로그 컨트롤 폴더의 user_mgmt.py파일에서

db_model 폴더의 파일을 호출하려면 상위폴더로 이동 후 다시 하위 폴더로 내려와야되는데요.

예상은 했지만 실행해보니 모듈을 찾을 수 없다고 나옵니다. 

별도로 윈도우상에서 path를 추가하신게 맞나요?

답변 4

0

from 부분에 .이나 ..을 붙여보세요. from .blog_control 이런 식으로요. 그럼 해결됩니다. 상대경로로 찾는 건가 해서 해보니 해결했습니다.

0

J군님의 프로필 이미지
J군
질문자

sys.path.append(os.path.dirname(os.path.abspath(os.path.dirname(__file__))))
from blog_control.user_mgmt import User
from blog_control.session_mgmt import BlogSession
sys.path.append(os.path.dirname(os.path.abspath(os.path.dirname(__file__))))
를 추가해 주시면 해결됩니다.

0

저도 윗분과 동일한 문제입니다.

user_mgmt.py와 session_mgmt.py가 db_model 폴더안의 파일을 불러와야 하는데 db_model 폴더자체가 동일 또는 하위경로에 있지 않기 때문에 에러를 내는 것 같아요.

강의 자료 가장 후반부 프로젝트 폴더로 테스트를 해봐도 문제는 동일합니다. (강의자료는 코드를 수정하지 않은 온전한 상태입니다.)

단순히 임포트 경로의 문제 같은데 flask의 실행과 관련된 부분인건지 답변하신 내용이 잘 이해가 안가서요..

0

안녕하세요. path를 추가하거나 하는 작업을 하지 않았어요. 

제가 여러 프로젝트 코드를 드렸죠. 각 프로젝트 중 후반부 프로젝트 들은 모두 user_mgmt.py 와 db_model 쪽이 담겨있으니, 해당 프로젝트 폴더로 테스트를 해보시고, 테스트가 안되는 작성하신 프로젝트와 코드 수준에서 비교해보시면 되실 것 같아요.

이 부분이 관련된 설명이 flask에도 없긴 한데요. 생각해보면 매우 복잡하기도 하고 경우의 수도 많은 것 같아요. 

간단히 flask 앱을 실행한 폴더를 기준으로 각 서브 폴더의 코드들은 해당 코드를 flask 앱을 실행한 코드에서 임포트시, 다른 폴더의 코드들을 flask 앱을 실행한 폴더를 기준으로 절대경로처럼 임포트를 작성할 수 있다 정도로만 이해하고 진행하시면 좋을 것 같습니다. 

감사합니다.

J군님의 프로필 이미지
J군

작성한 질문수

질문하기