CPython

CPython 3.9 환경 설정 (macos)

25G 2022. 12. 10. 13:21

cpython

CPython은 C로 작성된 컴파일러를 사용하는 python 인터프리터 언어

c 로 작성된 이유

  1. 셀프호스팅 컴파일러는 고 컴파일러척럼 자기 자신으로 작성한 컴파일러이다. 셀프 호스팅 컴파일러는 부트스트래핑이라는 단계를 통해서 만들어진다.
  2. 소스대 소스 컴파일러는 컴파일러를 이미 가지고 있는 다른 언어로 작성한 컴팡일러이다.

cpython 배포된 소스코드 클론해서 들고오기

git clone --branch 3.9 https://github.com/python/cpython

cd python

mac은 기본적으로 xcode에서 기본적인 툴킷을 제공하기때문에 xcode툴킷만 다운로드 하ㅕㅁㄴ 대부분의 준비가 끝난다.

xcode-select --install

다음 의존성 brew로 설치

brew install openssl xz zlib gdbm sqlite

환경번수 설정

CPPFLAGS="-I$(brew --prefix zlib)/include LDFALGS="-L$(brew --prefix zlib)/lib" ./configure --with-openssl=$(brew --prefix openssl) --with-pydebug"

위 명령어는 한번만 실행하면된다. 위 명령어를 실행하면 ./configure가 저장소최상단에 생성한 mzkefile이 빌드 과정을 자동화한다. 다음 명령어로 Cpython 바이너리를 빌드합니다.

make -j2 -s

빌드 중오류가 발생하거나 일부가 빌드 되지 않았다고해서 그 패키지를 사용하지않는다면 문제가 되지 않는다.

빌드가 끝나면 pyhotn.exe 바이너리를 생성합니다. 소스코드를 수정하면 동일한 플래그로 make를 다시 실행해야 합니다.
python.exe는 Cpython의 디버그 바이너리 입니다.

./python.exe

문법 및 언어 레퍼런스

Doc/reference 디렉터리에 파이썬 언어의 기능을 설명하는 reStructuredText 파일을 담고 있다. 이 파일들의 파이썬 언어 레퍼런스를 구성한다.

문법 파일

파이썬의 문법 파일은 파서 표현식 문법 PEG사양을 사용.

  • *로 반복 표현
  • +로 최소 한번 반복 표현
  • "[]"로 선택적인 부분 표현
  • | 로 대안을 표현
  • ()로 그룹을 표현한다.