ImportError: attempted relative import with no known parent package

boingboing·2022년 2월 8일

현상

A(프로젝트폴더) - B(앱)      -C (views.py) - F (main_views.py)
               - D(config) -E (urls.py)

부모 폴더의 하위 폴더를 참조하려다가 생긴 에러.
즉, E에서 from C import F를 하려다 발생한 에러.

원인

"최상위 레벨의 패키지 뒤에서 상대 경로로 import하려 한다 "
Relative imports only work within packages.

상대적 임포트는 패키지 안에서만 가능하다
상대 가져오기 오류의 상위 수준 패키지 오류는 가져오려는 파일이 패키지의 일부가 아닌 상대 가져오기를 사용할 때 발생한다.

즉, config.urls.py와 앱.views 는 다른 패키지 안에 있었기 때문에 발생한 에러.

해결

앱 명을 찾지 못하므로 from 앱명.views import main_vies.py로 변경

https://careerkarma.com/blog/python-beyond-top-level-package-error-in-relative-import/

0개의 댓글