- 파이썬 프로젝트는 파이썬 프로젝트 산출물을 제작하기 위한 소스코드 및 메타정보를 모아놓은 것을 말한다.
- 파이썬 프로젝트 산출물에는 다음 3가지가 있다
- 파이썬 패키지: 다른 파이썬 코드에서 임포트하여 사용할 수 있는 파이썬 패키지
- 실행 바이너리:
.exe 확장자 파일(윈도우즈의 경우) 등 직접 실행가능한 실행 바이너리 파일
- 실행 스크립트: 파이썬 인터프리터로 실행가능한
.py 확장자 파일
- 3가지 중 하나만 선택하는 것이 아니라 복수 종류의 산출물을 복수개 만드는 것도 가능
- 예시: 2개의 패키지, 1개의 바이너리, 3개의 스크립트를 생성하는 프로젝트
의존성 관리자
- 의존성 관리자는 프로젝트에서 사용하는 버전의 파이썬이나 패키지를 별도의 가상환경으로 격리하여 설치하거나 사용하도록 도와주는 도구
- 의존성 관리자의 예시
- conda/mamba
- pipenv
- poetry
- uv
- 가상환경을 만들고 가상환경내에 패키지들을 격리 설치
- conda/mamba: 여러 프로젝트가 공동으로 사용가능한 전역 가상환경 관리를 목적으로 설계
- poetry/uv: 특정 프로젝트 디렉토리에서만 사용가능한 프로젝트 전용 가상환경 관리를 목적으로 설계
빌드 시스템
- 소스코드로부터 파이썬 산출물을 만들거나 만들어진 산출물을 설치하는 일을 도와주는 도구
- 빌드 시스템의 예시
- setuptools
- poetry_core
- uv_build
- hatchling
- maturin
메타정보
- 메타정보는
pyproject.toml 이라는 텍스트 파일로 저장
- 다음과 같은 정보를 저장
- 프로젝트 자체의 이름, 제작자 등에 대한 설명
- 어떤 산출물을 생산할지에 대한 정보
- 어떤 의존성 관리자 및 빌드 시스템을 사용할 지 등에 대한 정보