2 คะแนน โดย GN⁺ 2024-07-10 | 2 ความคิดเห็น | แชร์ทาง WhatsApp

Rye: ประสบการณ์ Python แบบไร้ความยุ่งยาก

Rye คือโซลูชันสำหรับจัดการโปรเจ็กต์และแพ็กเกจ Python โดยมอบประสบการณ์แบบรวมศูนย์สำหรับผู้ใช้ Python ทุกคน และสามารถจัดการการติดตั้ง Python, โปรเจ็กต์ที่ใช้ pyproject.toml, dependencies และ virtual environments ได้อย่างราบรื่น รองรับโปรเจ็กต์ที่ซับซ้อน, monorepo และการติดตั้งเครื่องมือแบบ global

คำแนะนำในการติดตั้ง

Linux

  • รันคำสั่ง curl เพื่อติดตั้งไบนารีที่ตรงกับระบบปฏิบัติการและสถาปัตยกรรม CPU
    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

  • รันคำสั่ง curl เพื่อติดตั้งไบนารีที่ตรงกับระบบปฏิบัติการและสถาปัตยกรรม CPU
    curl -sSf https://rye.astral.sh/get | bash
    
  • ดาวน์โหลดและติดตั้งไบนารีของรีลีสล่าสุด
    gunzip rye-aarch64-macos.gz
    chmod +x ./rye-aarch64-macos
    ./rye-aarch64-macos
    

Windows

  • ดาวน์โหลดและรันไบนารีของรีลีสล่าสุด
  • แนะนำให้เปิดใช้งาน "Developer Mode"
  • Windows Intel 64 บิต: rye-x86_64-windows.exe
  • Windows Intel 32 บิต: rye-x86-windows.exe

ข้อควรระวัง

  • Rye ยังไม่ได้ใช้ไบนารีที่มีลายเซ็นดิจิทัล จึงต้องอนุญาตให้รันไฟล์ปฏิบัติการ
  • อาจมีคำเตือนโทรจัน "Bearfoos" ปรากฏขึ้น ซึ่งเป็นการตรวจจับผิดพลาด
  • ต้องใช้ Rust และ Cargo และสามารถติดตั้งได้ด้วย rustup
    cargo install --git https://github.com/astral-sh/rye rye
    

สรุปโดย GN⁺

  • Rye มอบโซลูชันแบบรวมศูนย์สำหรับการจัดการโปรเจ็กต์และแพ็กเกจให้กับนักพัฒนา Python
  • รองรับโปรเจ็กต์ที่ซับซ้อนและการติดตั้งเครื่องมือแบบ global เพื่อยกระดับประสบการณ์ของนักพัฒนา
  • แม้จะมีข้อควรระวังบางประการในขั้นตอนการติดตั้ง แต่โดยรวมแล้วใช้งานได้สะดวก
  • เครื่องมือที่มีฟังก์ชันคล้ายกันได้แก่ Poetry และ Pipenv

2 ความคิดเห็น

 
lum7671 2024-07-11

ผมใช้ Introduction - PDM
อยู่แล้ว หลังจากลองใช้นู่นนี่มาสักพัก

คงต้องลองใช้ Rye ดูบ้างแล้วครับ

 
GN⁺ 2024-07-10
ความคิดเห็นบน Hacker News
  • มีการพัฒนางานด้านแพ็กเกจจิงหลักจำนวนมากใน uv และ Rye ก็ใช้ uv เช่นกัน

    • ไม่นานมานี้ uv ได้เพิ่มการรองรับการ resolve แบบ "universal" ทำให้สามารถสร้างไฟล์ requirements.txt ที่ใช้งานได้กับทุกแพลตฟอร์มและระบบปฏิบัติการ
    • Rye ก็รองรับสิ่งนี้ในรีลีสล่าสุดเช่นกัน
    • หากมีคำถามเกี่ยวกับ Rye และ uv ก็สามารถตอบได้
  • ข้อเสียของ Rye คือมันแนะนำอย่างหนักให้ใช้ Python build ที่ไม่ใช่มาตรฐาน

    • ตามหน้า philosophy ของ Rye ระบุว่า CPython build นั้นไม่เหมาะสมอย่างยิ่งและก่อปัญหาหลากหลายบนหลายแพลตฟอร์ม
    • โปรเจ็กต์นี้ใช้ standalone build ของ indygreg
    • สามารถเลือก Python ตัวอื่นได้เช่นกัน
    • ไม่เคยเจอปัญหากับ Python build อย่างเป็นทางการ และมีความกังวลเกี่ยวกับการใช้ build ที่ไม่ใช่มาตรฐาน
  • มีผู้ใช้จำนวนมากที่ชอบ Rye

    • Rye ทำให้กระบวนการ venv/เวอร์ชัน Python/แพ็กเกจจิง กลายเป็นประสบการณ์ที่น่าใช้งานจริง ๆ
    • มันทำให้ Python ให้ความรู้สึกเหมือน Cargo
  • มีผู้ใช้บางคนที่ประหลาดใจกับความมองโลกในแง่ร้ายของ HN

    • หลังจากใช้ตัวจัดการแพ็กเกจของภาษาอื่น ๆ อย่าง cargo และ hex ก็รู้สึกเสียดายที่ Python ไม่มีระบบคล้ายกัน
    • Rye แก้ปัญหานี้ได้อย่างสมบูรณ์
  • ตัวจัดการ dependency ของ Python ตัวใหม่ ก็เหมือนกับการค้นพบ JavaScript framework ตัวใหม่

  • มีผู้ใช้ที่ชอบ pixi เช่นกัน

    • pixi สามารถตรึงเวอร์ชัน Python และทำให้ติดตั้งแพ็กเกจจากทั้ง conda และ PyPI ได้
    • เขียนด้วย Rust
  • ผู้ที่ไม่ใช่นักพัฒนา Python ไม่เข้าใจว่าทำไม DX ของโปรเจ็กต์ Python ถึงแย่ขนาดนั้น

    • npm/node ทำให้การ bootstrap โปรเจ็กต์และทำความเข้าใจ dependency เป็นเรื่องง่ายมาก
    • จึงสงสัยว่าทำไม Python ถึงใช้เวลานานขนาดนี้ในการหาทางเลือกที่สุกงอมกว่าสำหรับ "requirements.txt"
  • ควรสังเกตว่าทีม uv ได้เข้ามารับช่วงต่อโปรเจ็กต์ของ Armin แล้ว

  • Rye ดูยอดเยี่ยมมาก และ Poetry ก็เป็นอีกตัวที่ใช้อย่างเพลิดเพลิน

    • มีความชื่นชมอย่างมากต่อเครื่องมือพื้นฐานคุณภาพสูงของ Go
    • ทุกครั้งที่เริ่มโปรเจ็กต์ Python จะรู้สึกเหมือนต้องกลับไปเรียนรู้เรื่องการจัดการ dependency/venv ใหม่อีกครั้ง
  • ตามหน้าแนะนำของ Rye ระบุว่า Rye ยังเป็นเครื่องมือที่อยู่ในขั้นทดลองอย่างมาก

    • แม้จะตื่นเต้นกับโปรเจ็กต์นี้มาก แต่ตั้งใจจะรอจนกว่าจะถึงขั้นที่มีความสมบูรณ์มากกว่านี้
    • เพราะชอบทุกโปรเจ็กต์อื่นของทีม Astral จึงมีความคาดหวังสูงมาก