- Rye의 관리권이 2024년 2월 Astral로 넘어간 뒤, 기반 resolver·installer인 uv가 빠르게 개선되며 Python 패키징 도구 통합 후보로 부상함
- 최신 uv는
pyproject.toml조작, workspace 지원, 로컬 패키지 참조, 스크립트 설치, Python 설치 관리까지 포함하며 Rye가 맡던 영역을 흡수하고 있음 - AI·ML 투자로 Python 신규 사용자가 늘었지만, 패키징 도구 선택지가 많고 호환성이 엇갈려 개발자 경험은 여전히 일관되지 않음
- 패키징 생태계는 모두가 쓰는 지배적 도구가 있어야 투자와 문서가 한 스택으로 모이고, Rye는 uv 중심 전환을 위한 마이그레이션 경로가 될 가능성이 큼
- Astral의 VC 투자는 PSF와 Python 코어 프로젝트가 고려해야 할 리스크지만, uv는 최악의 경우에도 포크와 유지보수가 가능한 코드로 평가됨
Rye에서 uv로 기능이 모이는 흐름
- 2024년 2월 Rye의 관리권이 Astral로 넘어갔고, 이후 몇 달 동안 Astral은 Python 패키징 도구를 빠르게 개선함
- Rye 사용자는 기반 resolver·installer인 uv가 더 좋아지고 빨라진 것을 체감할 수 있었음
- 최신 uv는 예전에는 Rye가 필요했던 기능을 직접 제공하기 시작함
pyproject.toml파일 조작- workspace 지원
- 로컬 패키지 참조
- 스크립트 설치
- Python 설치 관리
- 현재 Rye를 쓰는 사용자는 uv를 살펴보고 Astral에 피드백을 줄 필요가 있음
Python 패키징 도구가 하나로 모여야 하는 이유
- EuroPython Prague 발표는 Python 패키징의 현재 상황과 Rye를 만들며 얻은 교훈을 중심으로 함
- 패키징 도구의 목표는 해당 영역을 지배하는 도구가 되는 것임
- 모두가 쓰는 도구가 가장 좋은 도구여야 함
- Python을 처음 접하는 사람이 프로그래밍 여정을 시작할 때 마주치는 도구이기 때문임
- 최근 2년간 Python은 AI와 ML에 대한 투자와 관심에 힘입어 신규 개발자에게 매우 뜨겁고 인기 있는 플랫폼이 됨
- 신규 사용자가 Python을 낡고 도구가 나쁜 언어가 아니라, 뛰어난 개발자 경험을 가진 언어로 기억하는 것이 중요함
- 하지만 현재 Python 패키징은 선택지가 너무 많고, 도구 간 호환성이 완전하지 않으며, 곳곳의 불일치가 경험을 흔듦
- 어떤 사용자는 한 도구를 따라가다가 벽에 부딪혀 전체 스택을 conda로 옮겼다가 다시 돌아오는 상황을 겪음
uv가 지배적 도구가 될 가능성
- 도구가 지배적 위치를 갖는다는 것은 대부분의 투자가 하나의 스택으로 모인다는 뜻임
- Rye와 그 주변의 여러 도구는 지배적 도구가 확립되면 더 이상 독립적으로 존재하지 않아도 되는 방향이 바람직함
- 현재 uv는 그 역할을 맡을 가능성이 가장 큰 도구로 평가됨
- 아직 모든 사용 사례를 충족하는 것은 아님
- 다만 빠르게 그 지점에 도달할 것으로 보임
- 커뮤니티가 지금 uv를 중심으로 모이기 시작해야 할 시점임
- 이 도구가 영원히 유일한 도구가 된다는 뜻은 아님
- 도구는 생기고 사라질 수 있음
- 미래에는 다른 도구가 나올 수도 있음
Rye의 은퇴와 Python 프로젝트 안내의 변화
- 기대되는 Rye의 최종 릴리스는 Rye 고유 기능을 은퇴시키고 사용자를 uv로 마이그레이션하며, 대부분 uv의 별칭처럼 동작하는 형태임
- Rye 하나를 은퇴시키는 것만으로는 충분하지 않음
- 현재 Python에는 여러 패키지 관리 해법이 쓰이고 있음
- 커뮤니티는 더 적은 수의 도구를 안내해야 함
- Rye와 uv는 그 아래 생태계의 오랜 발전 위에 만들어짐
setup.py에서 eggs, 그리고 wheels로 이동한 흐름- 메타데이터 표준의 부재에서 표준 보유 상태로 이동한 흐름
- 결합된 빌드 시스템에서 분리된 빌드 시스템으로 이동한 흐름
- 재배포·다운로드 가능한 Python 바이너리를 가능하게 만든 작업
- 관련 Rust crates와 Python 라이브러리 생태계
- 커뮤니티는 언젠가 일부 도구를 더 이상 추천하지 않는다고 말할 준비가 필요함
- 예전에는 신규 개발자 안내 문서에서
ez_setup.py와easy_install을 권장했음 - 이후 안내 문서에서
ez_setup.py를 제거하고pip로 대체함 - 일부 프로젝트는
pip-tools,poetry,PDM을 안내했음 - 현재 많은 프로젝트는 다양한 도구 때문에 5가지 설치 안내를 동시에 보여주기도 함
- 예전에는 신규 개발자 안내 문서에서
- 중요한 Python 프로젝트 유지보수자는 uv를 직접 써보고, 사용자에게 uv를 안내할 수 있을지 판단해볼 필요가 있음
- Astral의 Charlie가 쓴 uv가 현재 할 수 있는 일에 대한 글은 uv의 현재 성과를 보여줌
Astral의 VC 투자와 커뮤니티 리스크
- uv를 만드는 Astral이 VC 투자를 받은 회사라는 점은 피할 수 없는 쟁점임
- 커뮤니티 입장에서는 누군가 많은 돈을 투입하는 일이 새로운 과제를 만들 수 있음
- PSF와 Python 코어 프로젝트는 이 점을 고려해야 함
- uv의 코드와 동작을 보면, 최악의 미래에도 포크 가능하고 유지보수 가능한 대상으로 보임
- Astral이 문을 닫거나 라이선스 측면에서 매우 의심스러운 일을 하더라도, 커뮤니티는 uv가 존재하기 전보다 더 나은 위치에 있을 수 있음