15 คะแนน โดย GN⁺ 2025-01-13 | 5 ความคิดเห็น | แชร์ทาง WhatsApp
  • ประสิทธิภาพหรือความเข้ากันได้กับ Python ไม่ใช่จุดที่ทำให้ uv แตกต่างออกไป uv ปฏิบัติตาม PEPs และนับว่าเป็นตัวจัดการแพ็กเกจของ Python ที่แนะนำได้ แต่ฟีเจอร์ที่น่าทึ่งที่สุดนั้นมีอีกอย่าง
  • เมื่อต้องทำสคริปต์แบบ ad-hoc บน Python 3.12 บางครั้งก็ต้องเพิ่ม dependency อย่าง Pandas วิธีทั่วไปมีดังนี้:
    • รัน pip install pandas เพื่อแก้ไขสภาพแวดล้อมแบบโกลบอล หรือ
    • สร้าง virtual environment, รัน pip install pandas, เปิดใช้งาน virtual environment แล้วค่อยรัน Python
  • หากต้องใช้ Python เวอร์ชันอื่น ก็ต้องใช้ pyenv เพื่อติดตั้งเวอร์ชันนั้นและตั้งค่าแบบโลคัล ในกรณีแย่ที่สุด:
    1. pyenv install 3.12
    2. pyenv local 3.12
    3. python -m venv .venv
    4. source .venv/bin/activate
    5. pip install pandas
    6. python
  • แต่ถ้าใช้ uv ก็ทำได้ด้วยคำสั่งบรรทัดเดียว:
    • uv run --python 3.12 --with pandas python
    • จำง่าย และไม่ทิ้งร่องรอยไว้ สนุกกับการเขียนสคริปต์!

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

 
tribela 2025-01-15

ผมยังใช้ poetry อยู่เลย แต่คงต้องค่อย ๆ ย้ายไปแล้วล่ะครับ แบบนี้ virtualenv wrapper ก็คงต้องบ๊ายบายเหมือนกัน

 
roxie 2025-01-14

ดูเหมือนว่าถึงเวลาปล่อยมือจาก pip จริง ๆ แล้วนะ

 
dongho42 2025-01-14

ผมใช้งาน uv ได้อย่างพอใจในแทบทุกด้าน ยกเว้นตอน init ที่มักมีของไม่จำเป็นพ่วงติดมาด้วยเยอะแยะ

 
xguru 2025-01-14

ฟีเจอร์เด็ดของ Uv คือทำให้การสร้างสภาพแวดล้อมแบบเฉพาะกิจ (ad-hoc) เป็นเรื่องง่าย

Uv - เครื่องมือจัดการแพ็กเกจ Python ความเร็วสูงมากที่พัฒนาด้วย Rust

 
GN⁺ 2025-01-13
ความคิดเห็นจาก Hacker News
  • มีความเห็นว่าชอบตัวจัดการแพ็กเกจ uv มาก และหวังว่าจะกลายเป็นมาตรฐานของชุมชน โดยเฉพาะเป็นเครื่องมือที่แนะนำให้ผู้ใช้ใหม่ได้

  • uv รองรับ inline script dependencies ของ PEP 723 ทำให้ใช้งานได้อย่างเป็นระเบียบยิ่งขึ้น

  • ในฐานะนักพัฒนา NodeJS รู้สึกแปลกใจที่ปัญหาการตั้งค่าสภาพแวดล้อมของ Python ยังไม่ได้รับการแก้ไขเสียที Node เองก็ไม่ได้สมบูรณ์แบบ แต่ไม่ต้องกังวลเรื่องการแก้ไขสภาพแวดล้อมแบบ global

  • ไม่จำเป็นต้อง activate virtualenv และยังสามารถสร้าง virtual environment ได้โดยตรงโดยไม่ต้องตั้งค่า interpreter ของ pyenv

  • มีความเห็นว่าการรวมหลายฟังก์ชันไว้ในการรันเครื่องมือเดียวของ uv ทำให้ใช้งานไม่สะดวก การ activate venv แล้วรันโปรแกรมหลายครั้งทำได้สะดวกกว่า

  • uv มีคำสั่ง uvx รวมอยู่ด้วย ทำให้สามารถรันสคริปต์ Python ได้โดยไม่ต้องติดตั้งด้วยตนเอง

    • ตัวอย่าง: uvx --from 'huggingface_hub[cli]' huggingface-cli
  • ชอบ uv และอยากลองใช้ในเร็ว ๆ นี้ แต่มีความเห็นว่ายังไม่เข้าใจประเด็นสำคัญของบทความ เพราะใช้ pyenv กับ poetry ก็สามารถดึง dependency แบบ local ได้อยู่แล้ว

  • หากมี binary dependency อื่น ๆ การใช้ Nix และ virtualenv + pip-tools อาจเป็นตัวเลือกที่ดีกว่า

  • มีความเห็นว่าควร activate virtual environment ใน "เส้นทางที่ถูกต้อง" ก่อน แล้วค่อยติดตั้ง pandas