본문 바로가기
Python/Python FAQ

Python 다른 폴더에서 파일을 가져 오는 중입니다., Importing files from different folder

by 베타코드 2023. 5. 7.
반응형

질문


저는 이 폴더 구조를 가지고 있습니다:

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

반응형

댓글