5 điểm bởi GN⁺ 2025-03-31 | Chưa có bình luận nào. | Chia sẻ qua WhatsApp
  • Cách dùng uv trong script Python để tạo script tự chứa có thể chạy ngay mà không cần cài phụ thuộc trước
  • Đây là một cách tiếp cận thực dụng nảy sinh từ tình huống dùng script Python để kiểm thử API trong một dự án Go

Giới hạn của cách làm cũ

  • Để chạy một script Python dùng các gói như httpx, IPython, loguru, trước đây phải chọn một trong các cách sau
    • Cài trực tiếp gói vào Python hệ thống
    • Tạo môi trường ảo rồi cài gói và chạy
  • Cả hai cách đều phiền phức, có thể ảnh hưởng tới môi trường hệ thống, và khi chia sẻ cho người khác thì phần hướng dẫn thường trở nên dài dòng

Chạy script đơn giản hơn với uv

  • uv là trình quản lý gói Python đồng thời là công cụ thay thế pip, cho phép chạy script Python trong môi trường thực thi cô lập
  • Có thể khai báo thông tin phụ thuộc ngay bên trong script thông qua chú thích # /// script
    # /// script  
    # dependencies = ["ipython", "httpx", "loguru"]  
    # ///  
    
  • Script có cấu hình như trên có thể chạy bằng lệnh sau:
    uv run jam_users.py  
    
  • uv sẽ tự động tạo môi trường ảo tạm thời, cài các gói cần thiết, rồi chạy script trong một lần

Biến thành script có thể thực thi trực tiếp

  • Có thể làm cho script chạy được như script Python thông thường bằng #!/usr/bin/env python, nhưng cách này không nhận biết chú thích script của uv
  • Thay vào đó, có thể giải quyết bằng cách đặt trực tiếp lệnh uv trong shebang như sau
    #!/usr/bin/env -S uv run --script  
    # /// script  
    # dependencies = ["ipython", "httpx", "loguru"]  
    # ///  
    
  • Với cách này, sau khi chmod +x có thể chạy trực tiếp, và trên các hệ Unix khác cũng sẽ hoạt động nguyên trạng miễn là có uv:
    ./jam_users.py  
    

Ưu điểm và mức độ ứng dụng

  • Cách làm với uv đặc biệt hữu ích khi cần gửi script cho người khác
  • Không cần thiết lập trước phức tạp mà vẫn tự động có đủ gói và môi trường cần thiết
  • Không làm bẩn Python hệ thống hay môi trường global
  • Chỉ với một script là giải quyết được cả việc chạy lẫn quản lý phụ thuộc

Tác giả cho biết trước đây từng gặp cảnh phần hướng dẫn cài đặt trở nên rắc rối khi gửi script Python cho người khác, nhưng giờ có thể giải quyết vấn đề này một cách đơn giản với uv

  • Không chỉ phù hợp cho các script kiểm thử nhỏ mà còn hiệu quả cả với script tự động hóa dùng trong công việc thực tế

Chưa có bình luận nào.

Chưa có bình luận nào.