반응형
질문
저는 이 폴더 구조를 가지고 있습니다:
application
├── app
│ └── folder
│ └── file.py
└── app2
└── some_folder
└── some_file.py
some_file.py
안에서 file.py
에서 함수를 가져오는 방법은 무엇인가요? 저는 다음과 같이 시도해봤습니다:
from application.app.folder.file import func_name
하지만 작동하지 않습니다.
답변
Note: 이 답변은 매우 구체적인 질문을 위해 작성되었습니다. 검색 엔진에서 여기로 오는 대부분의 프로그래머들에게는 찾고 있는 답변이 아닙니다. 일반적으로 검색 경로를 수정하는 대신 파일을 패키지로 구성하는 것이 좋습니다(다른 답변 참조).
기본적으로 할 수 없습니다. 파일을 가져올 때 Python은 엔트리 포인트 스크립트가 실행되는 디렉토리와 sys.path
만 검색합니다. 이는 패키지 설치 디렉토리와 같은 위치를 포함합니다(실제로는 조금 더 복잡합니다, 하지만 대부분의 경우 이것으로 충분합니다).
그러나 런타임에 Python 경로를 추가할 수 있습니다:
# some_file.py
import sys
# 주의: path[0]은 스크립트 경로(또는 REPL에서는 ''입니다)를 위해 예약되어 있습니다.
sys.path.insert(1, '/path/to/application/app/folder')
import file
반응형
댓글