2P by neo 16일전 | favorite | 댓글 2개

Rye: 번거로움 없는 파이썬 경험

Rye는 파이썬 프로젝트와 패키지 관리 솔루션임. Rye는 모든 파이썬 사용자를 위한 통합 경험을 제공하며, 파이썬 설치, pyproject.toml 기반 프로젝트, 종속성 및 가상 환경을 원활하게 관리할 수 있음. 복잡한 프로젝트, 모노레포, 글로벌 도구 설치를 지원함.

설치 지침

Linux

  • 운영 체제와 CPU 아키텍처에 맞는 바이너리를 설치하는 curl 명령어 실행
    curl -sSf https://rye.astral.sh/get | bash
    
  • 최신 릴리스 바이너리를 다운로드하여 설치
    gunzip rye-x86_64-linux.gz
    chmod +x ./rye-x86_64-linux
    ./rye-x86_64-linux
    

macOS

  • 운영 체제와 CPU 아키텍처에 맞는 바이너리를 설치하는 curl 명령어 실행
    curl -sSf https://rye.astral.sh/get | bash
    
  • 최신 릴리스 바이너리를 다운로드하여 설치
    gunzip rye-aarch64-macos.gz
    chmod +x ./rye-aarch64-macos
    ./rye-aarch64-macos
    

Windows

  • 최신 릴리스 바이너리를 다운로드하여 실행
  • "Developer Mode" 활성화 권장
  • 64비트 Intel Windows: rye-x86_64-windows.exe
  • 32비트 Intel Windows: rye-x86-windows.exe

주의사항

  • Rye는 아직 서명된 바이너리를 사용하지 않음. 실행 파일을 허용해야 함.
  • "Bearfoos" 트로이 목마 경고가 나타날 수 있음. 이는 오탐임.
  • Rust와 Cargo가 필요함. rustup을 사용하여 설치 가능.
    cargo install --git https://github.com/astral-sh/rye rye
    

GN⁺의 정리

  • Rye는 파이썬 개발자에게 통합된 프로젝트 및 패키지 관리 솔루션을 제공함.
  • 복잡한 프로젝트와 글로벌 도구 설치를 지원하여 개발자 경험을 향상시킴.
  • 설치 과정에서 몇 가지 주의사항이 필요하지만, 전반적으로 사용이 간편함.
  • 비슷한 기능을 가진 도구로는 Poetry와 Pipenv가 있음.

저는 좀 됐지만, 이것 저것 사용하다가
Introduction - PDM
를 사용하고 있습니다.

Rye 도 사용을 해봐야 겠네요.

Hacker News 의견
  • uv에서 많은 핵심 패키징 개발이 진행 중이며, Rye도 uv를 사용함

    • 최근 uv에 "universal" 해상도 지원을 추가하여 모든 플랫폼과 운영 체제에서 작동하는 requirements.txt 파일을 생성할 수 있게 되었음
    • Rye도 최신 릴리스에서 이를 지원함
    • Rye와 uv에 대해 질문이 있으면 답변 가능함
  • Rye의 단점은 비표준 Python 빌드를 사용하도록 강력히 권장하는 것임

    • Rye 철학 페이지에 따르면, CPython 빌드는 완전히 부적절하며, 다양한 플랫폼에서 다양한 문제를 일으킴
    • 이 프로젝트는 indygreg standalone 빌드를 사용함
    • 다른 Python을 선택할 수도 있음
    • 공식 Python 빌드에서 문제를 경험한 적이 없으며, 비표준 빌드 사용에 대한 우려가 있음
  • Rye를 좋아하는 사용자는 많음

    • Rye는 venv/Python 버전/패키징 과정을 실제로 쾌적하게 만들어줌
    • Python을 Cargo처럼 느끼게 해줌
  • HN의 냉소주의에 놀라는 사용자도 있음

    • 다른 언어의 패키지 관리자(cargo, hex)를 사용한 후, Python에 유사한 시스템이 없어서 아쉬웠음
    • Rye가 이 문제를 완전히 해결해줌
  • 새로운 Python 의존성 관리자는 새로운 JavaScript 프레임워크를 발견한 것과 같음

  • pixi를 좋아하는 사용자도 있음

    • pixi는 Python 버전을 고정하고, conda와 PyPI에서 패키지를 설치할 수 있게 해줌
    • Rust로 작성됨
  • 비 Python 개발자는 Python 프로젝트의 DX가 왜 그렇게 나쁜지 이해하지 못함

    • npm/node는 프로젝트 부트스트랩과 의존성 이해가 매우 쉬움
    • Python이 "requirements.txt"에 대한 성숙한 대안을 찾는 데 왜 이렇게 오래 걸렸는지 의문임
  • uv 팀이 Armin 프로젝트를 인수했음을 주목할 필요가 있음

  • Rye는 훌륭해 보이며, Poetry도 즐겨 사용함

    • Go의 고품질 기본 도구에 대한 존경심이 큼
    • Python 프로젝트를 시작할 때마다 의존성/venv 관리에 대해 다시 배워야 하는 느낌이 듦
  • Rye 소개 페이지에 따르면, Rye는 아직 매우 실험적인 도구임

    • 이 프로젝트에 대해 매우 기대하고 있지만, 더 성숙한 단계에 도달할 때까지 기다릴 계획임
    • Astral 팀의 다른 모든 프로젝트를 좋아하기 때문에 큰 기대를 가지고 있음