2 pontos por GN⁺ 2024-07-10 | 2 comentários | Compartilhar no WhatsApp

Rye: uma experiência com Python sem complicação

Rye é uma solução de gerenciamento de projetos e pacotes para Python. O Rye oferece uma experiência unificada para todos os usuários de Python, permitindo gerenciar de forma fluida a instalação do Python, projetos baseados em pyproject.toml, dependências e ambientes virtuais. Ele oferece suporte a projetos complexos, monorepos e instalação de ferramentas globais.

Instruções de instalação

Linux

  • Execute o comando curl para instalar o binário adequado ao sistema operacional e à arquitetura de CPU
    curl -sSf https://rye.astral.sh/get | bash
    
  • Baixe e instale o binário da versão mais recente
    gunzip rye-x86_64-linux.gz
    chmod +x ./rye-x86_64-linux
    ./rye-x86_64-linux
    

macOS

  • Execute o comando curl para instalar o binário adequado ao sistema operacional e à arquitetura de CPU
    curl -sSf https://rye.astral.sh/get | bash
    
  • Baixe e instale o binário da versão mais recente
    gunzip rye-aarch64-macos.gz
    chmod +x ./rye-aarch64-macos
    ./rye-aarch64-macos
    

Windows

  • Baixe e execute o binário da versão mais recente
  • Recomendado ativar o "Developer Mode"
  • Windows Intel 64 bits: rye-x86_64-windows.exe
  • Windows Intel 32 bits: rye-x86-windows.exe

Observações

  • O Rye ainda não usa binários assinados. Será necessário permitir a execução do arquivo.
  • Pode aparecer um alerta de trojan "Bearfoos". Trata-se de um falso positivo.
  • Rust e Cargo são necessários. É possível instalar usando rustup.
    cargo install --git https://github.com/astral-sh/rye rye
    

Resumo do GN⁺

  • O Rye oferece aos desenvolvedores Python uma solução unificada para gerenciamento de projetos e pacotes.
  • Ele melhora a experiência de desenvolvimento ao oferecer suporte a projetos complexos e instalação de ferramentas globais.
  • Embora o processo de instalação exija alguns cuidados, no geral é fácil de usar.
  • Ferramentas com funcionalidades semelhantes incluem Poetry e Pipenv.

2 comentários

 
lum7671 2024-07-11

Já faz um tempo, mas depois de usar isto e aquilo,
estou usando o
Introduction - PDM.

Acho que vou precisar experimentar o Rye também.

 
GN⁺ 2024-07-10
Comentários do Hacker News
  • Muito do desenvolvimento central de empacotamento está acontecendo no uv, e o Rye também usa o uv

    • Recentemente, foi adicionado ao uv suporte a resolução "universal", permitindo gerar arquivos requirements.txt que funcionam em todas as plataformas e sistemas operacionais
    • O Rye também oferece suporte a isso na versão mais recente
    • Se alguém tiver perguntas sobre Rye e uv, posso responder
  • Uma desvantagem do Rye é recomendar fortemente o uso de builds não padronizadas do Python

    • Segundo a página de filosofia do Rye, as builds do CPython são completamente inadequadas e causam vários problemas em diferentes plataformas
    • Este projeto usa as builds standalone do indygreg
    • Também é possível escolher outro Python
    • Nunca tive problemas com as builds oficiais do Python e tenho receio quanto ao uso de builds não padronizadas
  • Há muitos usuários que gostam do Rye

    • O Rye realmente torna agradável o processo de venv/versão do Python/empacotamento
    • Faz o Python parecer com o Cargo
  • Há também usuários surpresos com o cinismo do HN

    • Depois de usar gerenciadores de pacotes de outras linguagens, como cargo e hex, sentiram falta de um sistema semelhante no Python
    • O Rye resolve esse problema completamente
  • Um novo gerenciador de dependências de Python é como descobrir um novo framework JavaScript

  • Há também quem goste do pixi

    • O pixi fixa a versão do Python e permite instalar pacotes do conda e do PyPI
    • É escrito em Rust
  • Quem não desenvolve em Python não entende por que a DX dos projetos Python é tão ruim

    • Com npm/node, é muito fácil iniciar um projeto e entender as dependências
    • Fica a dúvida de por que o Python demorou tanto para encontrar uma alternativa madura ao requirements.txt
  • Vale notar que a equipe do uv assumiu o projeto do Armin

  • O Rye parece excelente, e também gosto bastante de usar o Poetry

    • Tenho grande admiração pelas ferramentas padrão de alta qualidade do Go
    • Sempre que começo um projeto em Python, sinto que preciso reaprender como gerenciar dependências/venv
  • Segundo a página de apresentação do Rye, ele ainda é uma ferramenta bastante experimental

    • Estou muito animado com este projeto, mas pretendo esperar até que ele chegue a um estágio mais maduro
    • Como gosto de todos os outros projetos da equipe da Astral, minhas expectativas são altas