[PYTHON] 상위 폴더 하위 폴더에서 상대 가져 오기 모듈
PYTHON상위 폴더 하위 폴더에서 상대 가져 오기 모듈
이와 같은 디렉토리 구조가 주어진다.
/main/
/main/common/foo.py
/main/A/
/main/A/src/
/main/A/src/bar.py
어떻게하면 Python의 상대 임포트를 사용하여 막대에서 foo를 가져올 수 있습니까? 나는 경로에 그것을 추가하여 작업 솔루션을 가지고 있지만, 이것은 추한 것입니다. Python 2.7에서 단일 가져 오기를 사용하여 간단하게 할 수 있습니까?
이것은이 질문의보다 복잡한 버전입니다.
상위 폴더에서 모듈 가져 오기
해결법
-
==============================
1.올바른 상대 가져 오기는 다음과 같습니다.
올바른 상대 가져 오기는 다음과 같습니다.
from ...common import foo
그러나 상대적 가져 오기는 하나의 패키지 내에서만 작동합니다. main이 패키지 인 경우 여기에서 상대적 가져 오기를 사용할 수 있습니다. main이 패키지가 아니라면 그렇게 할 수 없습니다.
따라서 / main /에서 스크립트를 실행하고 A.src.bar 가져 오기와 같은 작업을 수행하는 경우 "상대 패키지를 넘어서 가져 오기 시도"로 해당 가져 오기가 실패합니다. 이는 상대적 가져 오기가 최상위 패키지 A 외부로 가져 오기를 시도하기 때문입니다.
그러나 main.A.src.bar 가져 오기와 같은 스크립트를 실행중인 경우 main이 이제 패키지이므로 해당 가져 오기가 성공합니다. 이 경우 다음 2 개는 동일합니다.
from ...common import foo from main.common import foo
귀하의 의견에 대답하십시오 :의 의미. 스크립트가 실행 된 위치에 따라 바뀌지 않지만 패키지 구조에 따라 바뀝니다.
from https://stackoverflow.com/questions/14057464/relative-importing-modules-from-parent-folder-subfolder by cc-by-sa and MIT license
'PYTHON' 카테고리의 다른 글
[PYTHON] 파이썬 : -u 옵션의 중요성? (0) | 2018.11.23 |
---|---|
[PYTHON] 파일의 시작 부분에 write ()? (0) | 2018.11.23 |
[PYTHON] PyCharm에서 Django 테스트 실행하기 (0) | 2018.11.23 |
[PYTHON] Python - 두 개의 열 조합을 기반으로 데이터 프레임에서 중복을 삭제 하시겠습니까? (0) | 2018.11.23 |
[PYTHON] Numpy dot은 대칭 곱셈에 대해서 너무 똑똑하다. (0) | 2018.11.23 |