15 điểm bởi GN⁺ 2025-01-13 | 5 bình luận | Chia sẻ qua WhatsApp
  • Hiệu năng hay khả năng tương thích với Python không phải là điểm khác biệt của uv. uv tuân thủ các PEP và có thể được khuyến nghị như một trình quản lý gói cho Python. Tuy nhiên, tính năng đáng kinh ngạc nhất lại là thứ khác.
  • Khi viết script ad-hoc trong Python 3.12, đôi khi bạn cần thêm các phụ thuộc như Pandas. Cách thông thường là như sau:
    • Chạy pip install pandas để thay đổi môi trường toàn cục, hoặc
    • Tạo môi trường ảo, chạy pip install pandas, kích hoạt môi trường ảo rồi chạy Python.
  • Nếu cần một phiên bản Python khác, bạn phải dùng pyenv để cài phiên bản đó và đặt nó cho thư mục cục bộ. Trường hợp tệ nhất:
    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
  • Với uv, tất cả chỉ cần một dòng lệnh duy nhất:
    • uv run --python 3.12 --with pandas python
    • Dễ nhớ và không để lại dấu vết. Chúc viết script vui vẻ!

5 bình luận

 
tribela 2025-01-15

Tôi vẫn còn đang dùng poetry, nhưng có lẽ cũng nên dần chuyển sang thôi. Chắc cả virtualenv wrapper cũng sẽ phải tạm biệt.

 
roxie 2025-01-14

Có lẽ đúng là đã đến lúc bỏ pip rồi.

 
dongho42 2025-01-14

Ngoại trừ việc mỗi lần init thì nó lại kéo theo một đống thứ không cần thiết, còn lại tôi đều rất hài lòng và đang dùng uv rất ổn.

 
GN⁺ 2025-01-13
Ý kiến trên Hacker News
  • Có ý kiến cho rằng họ rất thích trình quản lý gói uv và mong nó trở thành tiêu chuẩn của cộng đồng. Đặc biệt, đây là công cụ đáng để giới thiệu cho người dùng mới

  • uv hỗ trợ các phụ thuộc script nội tuyến của PEP 723, giúp việc sử dụng gọn gàng hơn

  • Với tư cách là lập trình viên NodeJS, có người ngạc nhiên rằng vấn đề thiết lập môi trường của Python vẫn chưa được giải quyết. Node cũng không hoàn hảo, nhưng không phải lo về việc chỉnh sửa môi trường toàn cục

  • Không cần kích hoạt virtualenv, và có thể tạo môi trường ảo trực tiếp mà không cần cấu hình trình thông dịch pyenv

  • Có ý kiến cho rằng việc gộp nhiều chức năng vào một lần chạy công cụ duy nhất của uv là bất tiện. Việc kích hoạt venv rồi chạy chương trình nhiều lần sẽ tiện hơn

  • uv bao gồm lệnh uvx, cho phép chạy script Python mà không cần cài đặt thủ công

    • Ví dụ: uvx --from 'huggingface_hub[cli]' huggingface-cli
  • Có người thích uv và muốn sớm dùng thử, nhưng nói rằng họ không hiểu trọng tâm của bài viết. Với pyenvpoetry cũng có thể dùng các phụ thuộc cục bộ

  • Khi có thêm các phụ thuộc nhị phân khác, dùng Nix cùng virtualenv + pip-tools có thể là lựa chọn tốt hơn

  • Có ý kiến cho rằng trước tiên cần kích hoạt môi trường ảo ở "đúng đường dẫn" rồi mới cài đặt pandas