File size: 463 Bytes
cb1827c
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
import subprocess, sys

def ensure_package(package_name: str, import_name: str = None):
    """
    Ensures a package is installed at runtime.
    If missing, installs it via pip.
    """
    import importlib
    try:
        return importlib.import_module(import_name or package_name)
    except ImportError:
        subprocess.check_call([sys.executable, "-m", "pip", "install", package_name])
        return importlib.import_module(import_name or package_name)