python

__pycache__ 란

fe_lee 2025. 1. 11. 21:21

pychache

__pycache__란 무엇인가요?

__pycache__는 파이썬이 소스 코드를 더 효율적으로 실행하기 위해 만들어지는 디렉터리입니다.
이 디렉터리는 우리가 작성한 .py 파일을 바탕으로 생성된 바이트코드 파일을 저장합니다.

 

왜 __pycache__가 생성될까요?

  • 파이썬은 .py 파일을 실행할 때, 먼저 해당 코드를 바이트코드로 변환합니다.
  • 바이트코드는 CPU가 바로 이해할 수는 없지만, 인터프리터(Python)가 빠르게 읽어 실행할 수 있는 중간 형태의 코드입니다.
  • 이 변환 과정을 반복하지 않도록, 파이썬은 변환된 바이트코드를 저장합니다.
  • 그 결과 생성된 파일들이 바로 __pycache__ 디렉터리에 들어가는 .pyc 파일들입니다.

.pyc 파일이란?

.pyc는 "Python Compiled file"의 약자로, 바이트코드를 담고 있는 파일입니다. 이를 통해 다음과 같은 장점이 있습니다:

  • 빠른 실행: 소스 코드를 다시 바이트코드로 변환할 필요가 없으므로 실행 속도가 빨라집니다.
  • 자동 관리: 소스 코드가 변경되었을 때만 새로운 바이트코드 파일이 생성됩니다.

 

__pycache__는 어디에 생성되나요?

__pycache__는 일반적으로 파이썬 스크립트가 위치한 디렉터리 안에 자동으로 생성됩니다. 예를 들어, 아래와 같은 구조를 가질 수 있습니다:

my_project/ 
├── main.py 
└── __pycache__/ 
	└── main.cpython-310.pyc

여기서:

  • cpython-310은 파이썬 버전(3.10)을 나타냅니다.

__pycache__를 삭제해도 되나요?

네, 삭제해도 됩니다. 하지만 다음 번에 해당 코드를 실행할 때 파이썬이 바이트코드를 다시 생성하므로 실행 속도가 느려질 수 있습니다.

  • 삭제가 필요한 경우:
    • 개발 중 디버깅을 위해 바이트코드를 초기화해야 할 때.
    • 배포 전 불필요한 파일을 제거할 때.

__pycache__를 관리하는 팁

  1. 무시 설정: 배포나 저장소(git)에 __pycache__를 포함하지 않으려면 .gitignore 파일에 추가하세요.
     
    __pycache__/
  2. 최적화된 바이트코드: python -O 옵션을 사용하면 최적화된 바이트코드 파일(.pyo)을 생성할 수 있습니다.
  3. 강제 삭제:
find . -name "__pycache__" -exec rm -rf {} +

요약

  • __pycache__는 바이트코드 파일을 저장해 파이썬 실행 속도를 높이는 데 중요한 역할을 합니다.
  • 삭제해도 문제는 없지만, 일반적으로 자동 관리되도록 두는 것이 좋습니다.
  • 배포 시에는 __pycache__를 제외하도록 설정하세요.

'python' 카테고리의 다른 글

정규표현식 re  (1) 2024.10.17
두 리스트에서 중복 된 값 추출하기  (0) 2024.10.17