파이썬 프로젝트

파이썬 패키지

실행 바이너리와 실행 스크립트

프로젝트 도구

  • 프로젝트에는 다음과 같은 도구들이 필요하다.
    • 의존성 관리자
    • 빌드 시스템

의존성 관리자

  • 의존성 관리자는 프로젝트에서 사용하는 버전의 파이썬이나 패키지를 별도의 가상환경으로 격리하여 설치하거나 사용하도록 도와주는 도구
  • 의존성 관리자의 예시
    • conda/mamba
    • pipenv
    • poetry
    • uv
  • 가상환경을 만들고 가상환경내에 패키지들을 격리 설치
    • conda/mamba: 여러 프로젝트가 공동으로 사용가능한 전역 가상환경 관리를 목적으로 설계
    • poetry/uv: 특정 프로젝트 디렉토리에서만 사용가능한 프로젝트 전용 가상환경 관리를 목적으로 설계

빌드 시스템

  • 소스코드로부터 파이썬 산출물을 만들거나 만들어진 산출물을 설치하는 일을 도와주는 도구
  • 빌드 시스템의 예시
    • setuptools
    • poetry_core
    • uv_build
    • hatchling
    • maturin

메타정보

  • 메타정보는 pyproject.toml 이라는 텍스트 파일로 저장
  • 다음과 같은 정보를 저장
    • 프로젝트 자체의 이름, 제작자 등에 대한 설명
    • 어떤 산출물을 생산할지에 대한 정보
    • 어떤 의존성 관리자 및 빌드 시스템을 사용할 지 등에 대한 정보