티스토리 뷰
Python에서 __pycache__ 디렉토리는 파이썬 인터프리터가 모듈을 임포트할 때 생성하는 특별한 폴더이다. 이 폴더는 다음과 같은 특징을 가지고 있다.
1. __pycache__ 의 목적
__pycache__ 폴더는 파이썬 스크립트의 컴파일된 버전인 .pyc 파일들을 포함한다. 이 파일들은 바이트 코드 형식으로, 파이썬 인터프리터가 원본 소스 코드보다 빠르게 실행할 수 있다.
주요 기능
- 실행 속도 향상 : 소스 코드를 매번 다시 컴파일할 필요 없이 바이트 코드를 재사용하여 프로그램 시작 시간을 단축
- 코드 격리 : 바이트 코드를 소스 코드와 분리하여 프로젝트 디렉토리 구조를 깔끔하게 유지
2. 작동 방식
파이썬 스크립트를 실행할 때 다음과 같은 과정 실행
- 인터프리터는 먼저
__pycache__폴더에 해당하는.pyc파일이 있는지 검사 - 만약
.pyc파일이 있고 최신 상태라면(소스 코드가 수정되지 않았다면), 파이썬은 원본 스크립트 대신 이 파일을 실행 - 만약
.pyc파일이 없거나 최신 상태가 아니라면, 파이썬은 소스 코드를 다시 컴파일하고__pycache__폴더에 새로운.pyc파일을 생성
.pyc 파일의 이름은 일반적으로 모듈명.cpython-버전.pyc 형식을 따릅니다. 예를 들어 sample.cpython-311.pyc와 같은 형태이다.
3. 비활성화 방법
Python에서 __pycache__ 폴더 생성을 비활성화하는 방법은 다음과 같습니다:
(1). 환경 변수 설정을 통한 비활성화
PYTHONDONTWRITEBYTECODE 환경 변수를 설정하면 Python이 바이트코드 파일(.pyc)과 __pycache__ 디렉토리를 생성하지 않는다.
터미널에서 다음 명령어를 실행하여 현재 세션에서 비활성화할 수 있다.
export PYTHONDONTWRITEBYTECODE=1
이 설정을 영구적으로 적용하려면 쉘 시작 파일(.bashrc, .bash_profile 등)에 위 명령어를 추가하면 된다.
(2). 명령줄 옵션 사용
Python 스크립트를 실행할 때 -B 옵션을 사용하여 바이트코드 파일 생성을 비활성화할 수 있다.
python -B script.py
(3). VS Code에서 디버깅 시 비활성화
VS Code에서 디버깅할 때 launch.json 파일에 설정을 추가하여 __pycache__ 생성을 방지할 수 있다
(4). VS Code에서 __pycache__ 숨기기
__pycache__ 폴더를 완전히 비활성화하지 않고 VS Code 파일 탐색기에서 숨기기
- VS Code 설정을 열고(Ctrl+, 또는 File > Preferences > Settings)
- 'exclude'를 검색
- 'Files: Exclude'에서 'Add Pattern' 버튼을 클릭하고
**/__pycache__패턴을 추가
4. 자주 묻는 질문
__pycache__ 폴더를 삭제해도 되나요?
네, 이 폴더를 삭제해도 파이썬 스크립트 실행에는 영향을 미치지 않습니다. 다만 다음 실행 시 파이썬이 스크립트를 다시 컴파일해야 하므로 초기 실행이 약간 느려질 수 있습니다.
Git에 __pycache__를 포함시켜야 하나요?
아니요, 일반적으로 __pycache__ 디렉토리는 .gitignore 파일에 추가하여 버전 관리에서 제외하는 것이 좋습니다. 이 파일들은 시스템과 파이썬 버전에 따라 달라질 수 있기 때문입니다
Python 3.2 이전 버전에서는 어떻게 작동하나요?
Python 3.2 이전 버전에서는 __pycache__ 디렉토리가 생성되지 않고, .pyc 파일이 소스 코드와 같은 디렉토리에 직접 생성됩니다.
'Coding Study > Python' 카테고리의 다른 글
| 주피터 노트북 완벽 가이드 (0) | 2025.10.21 |
|---|---|
| 파이썬 가상환경 완벽 가이드 - 가짜 활성화 문제부터 Cursor IDE 설정까지 (1) | 2025.06.11 |
| VScode 에서 Python 가상환경 설정방법 (0) | 2024.11.04 |
| dotenv 설치 및 pip 설치 시 에러 해결 (1) | 2024.06.28 |
| [Python] if __name__ == "__main__": 이 코드는 뭐야? (1) | 2023.08.08 |
- Total
- Today
- Yesterday
- 구글시트
- chatGPT
- 도커
- Selenium
- 퍼플렉시티
- notebooklm
- 버전제어
- 오블완
- GitHub
- docker
- chromedriver버전오류
- vscode 구글시트 연동
- MCP
- 고양장항신혼희망타운
- model context protocol
- 챗gpt
- cursor ai
- 구글API
- claude desktop
- Python
- 청약통장
- Git
- 주택청약
- claude code
- 구글시트연동
- 티스토리챌린지
- kc인증
- chrome버전
- 청약제도
- This version of ChromeDriver only supports Chrome version
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | ||||||
| 2 | 3 | 4 | 5 | 6 | 7 | 8 |
| 9 | 10 | 11 | 12 | 13 | 14 | 15 |
| 16 | 17 | 18 | 19 | 20 | 21 | 22 |
| 23 | 24 | 25 | 26 | 27 | 28 | 29 |
| 30 |