2 điểm bởi GN⁺ 2024-07-10 | 2 bình luận | Chia sẻ qua WhatsApp

Rye: Trải nghiệm Python không phiền toái

Rye là một giải pháp quản lý dự án và gói cho Python. Rye cung cấp trải nghiệm hợp nhất cho mọi người dùng Python, cho phép quản lý liền mạch việc cài đặt Python, các dự án dựa trên pyproject.toml, dependency và môi trường ảo. Công cụ này hỗ trợ các dự án phức tạp, monorepo và cài đặt công cụ toàn cục.

Hướng dẫn cài đặt

Linux

  • Chạy lệnh curl để cài đặt binary phù hợp với hệ điều hành và kiến trúc CPU
    curl -sSf https://rye.astral.sh/get | bash
    
  • Tải xuống và cài đặt binary bản phát hành mới nhất
    gunzip rye-x86_64-linux.gz
    chmod +x ./rye-x86_64-linux
    ./rye-x86_64-linux
    

macOS

  • Chạy lệnh curl để cài đặt binary phù hợp với hệ điều hành và kiến trúc CPU
    curl -sSf https://rye.astral.sh/get | bash
    
  • Tải xuống và cài đặt binary bản phát hành mới nhất
    gunzip rye-aarch64-macos.gz
    chmod +x ./rye-aarch64-macos
    ./rye-aarch64-macos
    

Windows

  • Tải xuống và chạy binary bản phát hành mới nhất
  • Khuyến nghị bật "Developer Mode"
  • Windows Intel 64-bit: rye-x86_64-windows.exe
  • Windows Intel 32-bit: rye-x86-windows.exe

Lưu ý

  • Rye hiện vẫn chưa sử dụng binary đã ký. Bạn cần cho phép chạy tệp thực thi.
  • Có thể xuất hiện cảnh báo trojan "Bearfoos". Đây là cảnh báo nhầm.
  • Cần có Rust và Cargo. Có thể cài đặt bằng rustup.
    cargo install --git https://github.com/astral-sh/rye rye
    

Tóm tắt của GN⁺

  • Rye cung cấp một giải pháp quản lý dự án và gói hợp nhất cho các nhà phát triển Python.
  • Công cụ này hỗ trợ các dự án phức tạp và cài đặt công cụ toàn cục, giúp cải thiện trải nghiệm của nhà phát triển.
  • Quá trình cài đặt cần lưu ý một vài điểm, nhưng nhìn chung khá dễ sử dụng.
  • Các công cụ có tính năng tương tự gồm có Poetry và Pipenv.

2 bình luận

 
lum7671 2024-07-11

Tôi thì cũng đã một thời gian, sau khi dùng thử cái này cái kia
Introduction - PDM
đang được tôi sử dụng.

Có lẽ tôi cũng nên thử dùng Rye.

 
GN⁺ 2024-07-10
Ý kiến trên Hacker News
  • Rất nhiều phát triển cốt lõi về đóng gói đang diễn ra trong uv, và Rye cũng sử dụng uv

    • Gần đây uv đã thêm hỗ trợ phân giải "universal", cho phép tạo tệp requirements.txt hoạt động trên mọi nền tảng và hệ điều hành
    • Rye cũng hỗ trợ điều này trong bản phát hành mới nhất
    • Nếu có câu hỏi về Rye và uv, tôi có thể trả lời
  • Nhược điểm của Rye là nó khuyến nghị rất mạnh việc sử dụng các bản dựng Python không tiêu chuẩn

    • Theo trang triết lý của Rye, các bản dựng CPython là hoàn toàn không phù hợp và gây ra nhiều vấn đề khác nhau trên nhiều nền tảng
    • Dự án này sử dụng bản dựng standalone của indygreg
    • Bạn cũng có thể chọn Python khác
    • Tôi chưa từng gặp vấn đề với các bản dựng Python chính thức và có lo ngại về việc dùng bản dựng không tiêu chuẩn
  • Có nhiều người dùng thích Rye

    • Rye thực sự khiến quá trình venv/phiên bản Python/đóng gói trở nên dễ chịu
    • Nó khiến Python có cảm giác giống Cargo
  • Cũng có người ngạc nhiên trước sự hoài nghi trên HN

    • Sau khi dùng trình quản lý gói của các ngôn ngữ khác (cargo, hex), họ thấy tiếc vì Python không có hệ thống tương tự
    • Rye giải quyết hoàn toàn vấn đề này
  • Trình quản lý phụ thuộc Python mới cũng giống như phát hiện ra một framework JavaScript mới

  • Cũng có người thích pixi

    • pixi cho phép cố định phiên bản Python và cài đặt gói từ conda và PyPI
    • Được viết bằng Rust
  • Có cả những lập trình viên không dùng Python không hiểu vì sao DX của các dự án Python lại tệ đến vậy

    • npm/node giúp việc khởi tạo dự án và hiểu các phụ thuộc trở nên rất dễ dàng
    • Họ thắc mắc vì sao Python lại mất quá lâu để tìm ra một giải pháp thay thế trưởng thành cho "requirements.txt"
  • Cần lưu ý rằng nhóm uv đã tiếp quản dự án của Armin

  • Rye trông rất tuyệt, và cũng có người rất thích dùng Poetry

    • Họ rất ngưỡng mộ bộ công cụ mặc định chất lượng cao của Go
    • Mỗi khi bắt đầu một dự án Python, họ lại có cảm giác phải học lại cách quản lý phụ thuộc/venv
  • Theo trang giới thiệu của Rye, đây vẫn là một công cụ rất thử nghiệm

    • Tôi rất hào hứng với dự án này, nhưng dự định sẽ chờ đến khi nó đạt độ trưởng thành cao hơn
    • Tôi đặt kỳ vọng lớn vì tôi thích tất cả các dự án khác của đội Astral