파이썬 패키징, setup.py 대신 pyproject.toml을 써보세요!

by DD
4년 전
조회수 4

setup.py 기반의 파이썬 패키징 방식이 가진 문제점을 지적함

pyproject.tomlbuild 툴을 활용한 선언적 패키징 방식을 소개함

Poetry 사용 시에도 build 명령어를 활용하여 배포 효율을 높임

setup.py의 기술적 부채

setup.py는 setuptools에 의존하며, 빌드 시점에 의존성 문제를 야기한다. 구체적으로, setup.py를 실행하기 위해 setuptools를 설치해야 하는 부트스트래핑 문제가 발생한다. 따라서, build-time dependency 관리가 어렵고, 패키징 과정의 복잡성 증가를 초래한다.

pyproject.toml과 build 시스템의 장점

pyproject.toml은 build-time dependency를 선언적으로 관리하여, 빌드 환경 설정을 단순화한다. PEP-517을 준수하는 build 툴을 사용하면, setuptools나 Poetry 없이도 패키징이 가능하다. 반면, 메타데이터 표준화가 덜 되어, 툴별 설정 차이가 존재한다.

Poetry 사용자를 위한 배포 팁

Poetry를 사용하더라도, Dockerfile이나 CI/CD 파이프라인에서는 poetry build 대신 python -m build를 사용하는 것이 좋다. 구체적으로, Poetry의 dependency 설치 시간을 줄여 빌드 속도를 향상시킨다. 따라서, alpine 이미지와 같이 제한적인 환경에서 배포 효율을 높일 수 있다.

setup.py 멈춰!