[Python] 패키지(package)와 pyc 파일 - __init__.py, __pycache__ 폴더
by 우와한개발자
1. 패키지란?
- 여러 모듈(.py 파일)을 디렉토리 단위로 묶은 것
- __init__.py 파일이 있는 디렉토리가 패키지로 인식됨
- 자바의 패키지 개념과 유사
my_package/
__init__.py
module1.py
module2.py
2. __init__.py
- 해당 디렉토리를 패키지로 만들어주는 파일
- 로 import 시 __all__에 지정된 모듈만 가져옴
# __init__.py
__all__ = ["module1", "module2"] # *로 import 할 때 허용할 모듈 지정
3. 패키지 설치 (pip)
- 외부 패키지 설치 = 자바의 pom.xml에 의존성 추가하는 것과 유사
- 설치 파일 종류:
| 형식 | 설명 |
| .whl (wheel) | 컴파일된 바이너리 파일, 설치 속도 빠름 |
| .tar.gz | 소스 코드 압축 파일, 설치 시 직접 빌드 |
pip install 패키지명 # 온라인 설치
pip install 패키지명.whl # 로컬 파일로 설치
4. __pycache__ 폴더와 .pyc 파일
- 모듈 로드 속도를 높이기 위해 파이썬이 자동으로 생성하는 컴파일된 파일
- 파일명에 파이썬 버전 포함 ( 예: foo.cpython-313.pyc)
- 소스의 수정 날짜를 컴파일된 버전과 대조하여 다시 컴파일해야 하는지 자동으로 확인
- 컴파일된 모듈은 플랫폼에 독립적이므로 같은 라이브러리를 다른 아키텍처의 시스템과 공유 가능
- 삭제해도 무방 (다음 실행 시 자동 재생성)
'언어 > Python' 카테고리의 다른 글
| [Python] 클래스 메서드, 정적 메서드, 생성자와 소멸자 - @classmethod, @staticmethod, __init__ (0) | 2026.04.19 |
|---|---|
| [Python] 클래스(class)와 객체(object) - 구조, 네임스페이스, self (0) | 2026.04.19 |
| [Python] 모듈(module) - import 방법, sys.path, __name__ (0) | 2026.04.16 |
| [Python] 내장함수 - import 없이 사용하는 함수 모음 (0) | 2026.04.16 |
| [Python] 람다식(lambda)과 타입 힌트(Type Hint) - 익명 함수와 자료형 명시 (0) | 2026.04.16 |
블로그의 정보
우와한개발자 님의 블로그
우와한개발자