Chắc hẳn ai trong chúng ta cũng đã trải qua cảm giác bồn chồn khi phải đợi mãi mãi cho quá trình cài đặt Python và các thư viện liên quan thông qua pip. Tuy nhiên, liệu có một cách để giảm thiểu thời gian mất mát và tăng cường hiệu suất làm việc của chúng ta? Câu trả lời là có! Trong bài viết này, hãy cùng VietnamWorks inTECH khám phá một công cụ kỳ diệu mà không chỉ giúp bạn cài đặt Python một cách nhanh chóng, mà còn tăng tốc độ lên đến 100 lần so với phương pháp truyền thống. 

Trong một bài đăng vào tháng 2 vừa rồi của Charlie Marsh (người sáng lập của công ty Astral và tạo ra Ruff - một công cụ kiểm tra mã Python cực kỳ nhanh, được viết bằng Rust) đã chia sẻ rằng “uv” đang là trình cài đặt và phân giải gói Python nhanh nhất. Như bạn có thể thấy trong hình ảnh bên dưới, tốc độ cài đặt của công cụ này nhanh hơn > 75 lần so với pip và pip-tools. 

Sau đây, ta sẽ tìm hiểu sau hơn về công cụ này nhé

1. UV là gì?

Benchmarking uv against other Python packaging tools.

See: https://github.com/astral-sh/uv/blob/0780afff95b72c66d9cc8cf955acae2e4857acd1/BENCHMARKS.md

UV là một công cụ cài đặt và phân giải gói Python siêu tốc, được viết bằng Rust và được xem như một phương tiện thay thế tốc độ cao cho pip, pip-tools và virtualenv. Nó nhanh hơn 10–100 lần so với pip và pip-tools: với “warm cache”, quá trình cài đặt của UV gần như tức thì, một vài điểm nổi bật của UV:

  • Tiết kiệm dung lượng ổ đĩa : sử dụng bộ đệm chung để ngăn chặn sự phụ thuộc trùng lặp

  • Hoạt động trên mọi nền tảng : hỗ trợ macOS, Linux và Windows.

  • Dễ dàng cài đặt: Bạn không cần phải cài đặt Python hoặc Rust. Bạn có thể sử dụng curl, pip hoặc brew.

  • Các tính năng nâng cao: hỗ trợ ghi đè phiên bản phụ thuộc và các chiến lược giải quyết thay thế.

  • Pip nâng cao: cài đặt có thể chỉnh sửa, git dependicy, local dependency, phân phối nguồn

Nếu bạn đã ở trong hệ sinh thái Python đủ lâu, bạn sẽ biết việc thiết lập môi trường Python hoặc tạo một gói khó khăn như thế nào. Do vậy, uv có kế hoạch thiết lập một "Cargo cho Python", một trình quản lý gói và dự án Python thống nhất, vô cùng nhanh chóng, đáng tin cậy và dễ sử dụng.

Thử nghĩ xem, một tệp nhị phân duy nhất khởi động cài đặt Python của bạn và cung cấp mọi thứ bạn cần để làm việc hiệu quả với Python, package này không chỉ có pip, pip-tools và virtualenv, mà còn có pipx, tox, poetry, pyenv, ruff và nhiều hơn nữa. Vô cùng tiện lợi đúng không nào?

2. Những con số ấn tượng của UV

Hãy cùng xem qua một vài con số nổi bật từ các kiểm thử đến từ nhà phát hành nhé!

2.1 Cài đặt từ đầu (Cold Installation) nhanh hơn 8–10 lần

Điều này tương đương với việc chạy uv pip sync trên một máy tính mới. uv nhanh hơn 8-10 lần so với pip và pip-tools khi không sử dụng cache.

2.2. Cài đặt nhanh (Warm installation) nhanh hơn 80 –115 lần

UV nhanh hơn 80 –115 lần khi chạy với warm cache (ví dụ: tạo lại môi trường ảo hoặc cập nhật một phụ thuộc).


2.3. Tạo ra một venv

Nó nhanh hơn khoảng 80 lần python -m venv và nhanh hơn 7 lần so với virtualenv

Từ dữ liệu có thể thấy rằng, hiệu quả mà UV mang lại rất lớn. Bạn có thể tìm hiểu thêm các kiểm thử khác tại đây

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

Dưới đây là một số lệnh bạn nên chuẩn bị sẵn để bắt đầu sử dụng uv. Từ cài đặt đến đồng bộ hóa các phần phụ thuộc.

Bạn có thể cài đặt uv bằng lệnh sau

# On macOS and Linux.

curl -LsSf https://astral.sh/uv/install.sh | sh

 

# On Windows.

powershell -c "irm https://astral.sh/uv/install.ps1 | iex"

 

# With pip.

pip install uv

 

# With pipx.

pipx install uv

 

# With Homebrew.

brew install uv

 

# With Pacman.

pacman -S uv

Tạo venv

uv venv  # Create a virtual environment at .venv.

 

Kích hoạt venv

# On macOS and Linux.

source .venv/bin/activate

 

# On Windows.

.venv\Scripts\activate

Cài đặt gói

uv pip install flask                # Install Flask.

uv pip install -r requirements.txt  # Install from a requirements.txt file.

uv pip install -e .                 # Install the current project in editable mode.

uv pip install "package @ ."        # Install the current project from disk

uv pip install "flask[dotenv]"      # Install Flask with "dotenv" extra.

Tạo các phụ thuộc bị khóa

uv pip compile pyproject.toml -o requirements.txt   # Read a pyproject.toml file.

uv pip compile requirements.in -o requirements.txt  # Read a requirements.in file.

Đồng bộ hóa phần phụ thuộc

uv pip sync requirements.txt  # Install from a requirements.txt file.

Lời kết

Như vậy, chúng ta đã khám phá công cụ UV - một công cụ cài đặt và quản lý gói Python mới mẻ với những ưu điểm đáng chú ý. Từ tốc độ nhanh chóng đến khả năng đảm bảo tính nhất quán và dễ sử dụng, UV hứa hẹn mang lại trải nghiệm làm việc với Python một cách dễ dàng và hiệu quả hơn bao giờ hết.

VietnamWorks inTECH