PYTHONPATH
파이썬이 모듈을 찾기 위한 검색 경로(sys.path).
아래처럼 특정 디렉토리를 추가하면
해당 디렉토리 내부 .py 파일 또는 패키지를 import로 불러올 수 있다.
C:\> set PYTHONPATH=C:/pro
C:\> python
>>> import executor # 실제로는 C:/pro/executor.py
__init__.py
해당 디렉토리를 파이썬 패키지로 취급해주는 설정 파일.
아래처럼 각 디렉토리 하위에 __init__.py 빈 파일을 생성해주면
uitls, service 디렉토리가 패키지로 묶인다.
C:/pro/
utils/
__init__.py
settings.py
service/
__init__.py
executor.py
builder.py
각 파일에서 아래처럼 import해서 사용.
from service.executor import run
from utils.settings import SOME_VAR # 절대import
from ..utils.settings import SOME_VAR # 상대import (executor.py 내부)
순서대로 진행하면,
- 프로젝트 루트를 모듈 검색 경로로 추가 ( set PYTHONPATH=C:/pro )
- 하위 디렉토리를 패키지로 묶어 imiport 해서 사용. ( __init__.py )
* 파일(script) 실행
python 경로/실행파일.py
python pro/service/executor.py
- 파이썬은 executor.py를 독립적인 스크립트 파일로 실행하면서, __name__ == "__main__" 이 된다.
- sys.path[0] 이 pro/service 디렉토리가 된다.
=> 다른 디렉토리(utils)의 절대/상대 import경로가 깨질 수 있음.
* 모듈(package) 실행
python 경로.실행파일명
python -m pro.service.executor
- -m 옵션 : 파이썬은 지정한 이름을 패키지 경로 기준으로 찾는다.
- pro 디렉토리를 패키지 루트로 보고, 그 내부의 service/executor.py 모듈을 실행.
- __package__ = "pro.service"로 세팅되고 절대 import 경로가 정상 동작. ( from app.utils import settings )
'Python > 공부공부' 카테고리의 다른 글
| [python] pandas (Series, DataFrame) (0) | 2025.09.15 |
|---|---|
| [Python] collections.Counter (0) | 2025.09.08 |
| [Python] SQLAlchemy 업서트(upsert) - PostgreSQL (0) | 2025.09.01 |
| [Python] SQLAlchemy 라이브러리 (0) | 2025.09.01 |
| [Python] ast.literal_eval() (0) | 2025.07.02 |