Cài đặt Python package khi chạy script

Post by dangsonbk on 24-08-2017

Thông thường, để cài đặt một Python package, cách phổ biến nhất hiện nay là sử dụng pip. Pip được Python Foundation recomment sử dụng mặc định để cài đặt và quản lý các gói package của Python.

Ví dụ sau mô tả cách thông dụng nhất để cái đặt gói tqdm (cho phép tạo progress bar trên cửa sổ console một cách dễ dàng)

pip install tqdm

Ngoài cách cài đặt trực tiếp từ terminal, pip cũng cho phép developer có thể cài đặt gói cài mới cả khi chạy script.

import pip
pip.main(['install', "tqdm"])

Sửa đổi một chút để script sẽ chỉ gọi pip khi chưa có package cần thiết:

try:
    from tqdm import *
except ImportError as e:
    print("tqdm is not available in your system. Installing ...")
    import pip
    pip.main(['install', "tqdm", "--user"])
    input("Please restart the script to apply new package")
    exit()

Giải thích 1 chút:

Bạn cũng có thể hỏi người dùng xem có cho phép cài đặt không:

try:
    from tqdm import tqdm
except ImportError as e:
    print("Package tqdm is not available in your system. Installing ...")
    if raw_input("Install tqdm? (Y/N)") in ["Y", "y", "1", "yes", "Yes", "YES"]:
        import pip
        pip.main(['install', "tqdm"])
        from tqdm import tqdm
    else:
        exit()

Trong trường hợp không muốn check gói đã được cài đặt chưa bằng try ... catch ... bạn có thể tham khảo ở đây: How to check if a python module exists without importing it


Tham khảo:

Installing python module within code

Check if Python Package is installed

tags: python, package