본문 바로가기

Python/공부공부

[Python] PYTHONPATH 설정, __init__.py 파일, 실행명령어

 

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 내부)

 

순서대로 진행하면, 

  1. 프로젝트 루트를 모듈 검색 경로로 추가  ( set PYTHONPATH=C:/pro )
  2. 하위 디렉토리를 패키지로 묶어 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