[Một Gói Mỗi Ngày] Thơ: Quản lý sự phụ thuộc xác định
By hientd, at: 10:03 Ngày 27 tháng 2 năm 2026
Thời gian đọc ước tính: __READING_TIME__ phút
nếu bạn đã từng có một dự án bị hỏng vì một phụ thuộc phụ được cập nhật và làm hỏng ngày làm việc của bạn, bạn cần Poetry. Tại Glinteco, chúng tôi sử dụng Poetry khi sự ổn định của dự án và việc quản lý phiên bản nghiêm ngặt là những ưu tiên không thể thương lượng.
"Tại sao" (Sức mạnh của Lockfile)
Poetry không chỉ "cài đặt các gói"; nó quản lý toàn bộ hệ sinh thái trong dự án của bạn.
-
Tính xác định thực sự: Tệp
poetry.lockkhông chỉ theo dõi các thư viện chính của bạn; nó theo dõi mọi phụ thuộc phụ và băm của nó. Điều này đảm bảo "hoạt động trên máy của tôi" thực sự dịch thành "hoạt động trên môi trường sản xuất."
-
Trình phân giải phụ thuộc: Không giống như
pip, đôi khi có thể cài đặt các phiên bản xung đột, trình giải của Poetry sẽ thất bại ồn ào và sớm nếu các phụ thuộc của bạn có sự không khớp phiên bản, ngăn chặn "địa ngục phụ thuộc" trước khi nó bắt đầu.
-
Hệ thống xây dựng thống nhất: Poetry xử lý việc đóng gói và xuất bản lên PyPI hoặc các registry riêng tư bằng một lệnh duy nhất:
poetry publish.
Quy trình làm việc độc đáo: Trình quản lý phiên bản ngữ nghĩa
Poetry giúp việc quản lý phiên bản dự án trở nên dễ dàng. Thay vì chỉnh sửa chuỗi theo cách thủ công, bạn sử dụng các lệnh ngữ nghĩa:
# Tăng phiên bản từ 0.1.0 lên 0.1.1
poetry version patch# Tăng phiên bản lên 0.2.0
poetry version minor
# Xây dựng wheel và phân phối nguồn
poetry build
Điều này đảm bảo siêu dữ liệu dự án của bạn luôn đồng bộ với các bản phát hành thực tế của bạn.
So sánh: Hệ thống phân cấp mới
| Công cụ cũ | Tương đương Poetry | Tại sao nó tốt hơn |
|---|---|---|
| requirements.txt | poetry.lock | Bao gồm các băm và phụ thuộc phụ để tái tạo 100%. |
| venv + pip | poetry shell / run | Tự động quản lý môi trường ảo trong nền. |
| setup.py / twine | poetry build / publish | Một công cụ cho cả phát triển và phân phối. |
| pip-compile | poetry lock --no-update | Logic phân giải gốc, nhanh hơn và thông minh hơn. |