เห็นใน feed ของ reddit มีการแนะนำ Rye
ซึ่งเป็น python package manager ที่เขียนด้วยภาษา Rust
โดยมีแรงบันดาลใจจาก Cargo นั่นเอง
เป้าหมายของ Rye คือ

  • Speed
  • Security
  • Simplicity

เมื่อไปอ่านหัวข้อ Philosophy and Vision พบว่าน่าสนใจดังนี้

ทำการสร้างมาเพื่อแก้ไขปัญหาที่พบเจอ เช่น

  • ปัญหาจากการใช้งาน virtualenvs ไม่มีทั้ง dependency ต่าง ๆ ที่ต้องใช้งาน
  • ไม่มีตัวจัดการ version ของ python ยิ่งต่าง OS ยิ่งลำบาก
  • ไม่มีการจัดการ local dependency ให้
  • ไม่มี workspace ให้ใช้
  • ไม่มี basic script section สำหรับการ run คำสั่งต่าง ๆ ของ project

ดังนั้นจึงสร้าง Rye ขึ้นมา เพื่อแก้ไขัญหาเหล่านี้

ก่อนใช้งานนั้นใน Python มีเครื่องมือในการจัดการ dependency ต่าง ๆ ดังนี้

  • pip
  • poetry
  • condo
  • venv
  • virtualenv

มาลองใช้งาน Rye กันดู

เริ่มที่ติดตั้งก่อน ใช้งานบน MacOS

ตรวจสอบการติดตั้ง ซึ่งมีการ download Python มาให้เลย

ทำการสร้าง project ด้วย Rye

จะมีไฟล์ pyproject.toml สำหรับอธิบาย project ว่ามีชื่ออะไร
ใช้ dependency อะไรบ้าง
ใช้ toolchain อะไร
มี script อะไรบ้าง เป็นต้น

จากนั้นทำการ sync project นั่นคือ
ให้ Rye ทำการ initial project ขึ้นมา ทำงานดังนี้

  • สร้าง virtualenv ให้
  • ทำการ download dependency ให้

ทำการเพิ่ม dependency และเขียน code กันเลย

ลองใช้งาน Flask นิดหน่อย

Code ไฟล์ app.py สำหรับสร้าง web server

จากนั้นก็ run แบบง่าย ๆ ด้วย Rye

ยังไม่พอ ยังมี tool chain อื่น ๆ ให้ใช้งาน

  • rye lint
  • rye format
  • rype build

ลองใช้งานกันดูครับ น่าสนใจมาก ๆ

Reference Websites

Tags:,