기타 Lobsters · 2일 전

파이썬 패키징 도구가 14개나 되는 게 말이 되냐는 해외 개발자의 한탄

핵심 요약
  • 파이썬 생태계에는 패키징과 의존성 관리 관련 도구가 14개나 난립해 있으며, 이 중 최소 12개는 불필요할 정도로 파편화가 심하다는 지적이 제기되었습니다.
  • Setuptools, pip, venv, wheel, twine 등 기본 스택에 더해 pip-tools, pipx 등 수많은 파편화된 도구가 덧붙여져 초보자와 숙련자 모두에게 큰 피로감을 주고 있습니다.
  • Node.js나 .NET 등 다른 언어 생태계와 대조되며, 파이썬 표준 기구(PyPA) 산하 도구들의 일관성 부족 문제가 지속적으로 비판받고 있습니다.
요약 파이썬 개발 생태계에서 가장 악명 높은 문제 중 하나로 꼽히는 패키징 및 의존성 관리 파편화 문제를 다룬 개발 블로그 글입니다. 글쓴이는 파이썬 패키징 도구가 무려 14개나 난립해 있으며, 이 중 최소 12개는 불필요하게 사용자를 혼란스럽게 만든다고 비판합니다. 글에 따르면 파이썬의 전통적인 패키징 스택은 단일 패키지 빌드 도구인 Setuptools와 의존성 설치용 pip, 그리고 시스템 환경과의 충돌을 피하기 위한 venv(또는 virtualenv) 등으로 분절되어 있습니다. 여기에 바이너리 패키지 빌드를 돕는 wheel, 패키지를 PyPI에 업로드하기 위한 전용 도구 twine까지 별도로 요구됩니다. 게다가 표준 pip만으로는 개발용 의존성 분리나 정확한 전이 의존성 락파일(lock file) 생성이 어려워, 이를 해결하기 위해 pip-tools(pip-compile, pip-sync)나 가상환경 관리 보조 도구인 virtualenvwrapper, CLI 애플리케이션 격리 실행용 도구인 pipx 같은 서드파티 확장 도구들이 줄줄이 덧붙여졌습니다. 여기에 과학/데이터 분석 진영의 Conda와 더불어 Poetry, Pipenv, Hatch, PDM 등 최신 통합 도구들까지 각자 다른 철학과 방식으로 경쟁하면서 초보자뿐 아니라 숙련된 개발자들에게도 엄청난 피로도를 유발하고 있다는 지적입니다. 다른 현대 언어 생태계(Node.js나 .NET 등)와 비교했을 때 파이썬 패키징 표준 기구(PyPA)의 거버넌스와 표준화 방향이 이러한 파편화를 제대로 해결하지 못하고 있다는 점을 짚고 있습니다.
Sponsored · 광고