import logging from pip import main as pip_main class PipInstaller(): def __init__(self, pip_install_arg: str): self.pip_install_arg = pip_install_arg def install(self, package_name: str = None, requirements_path: str = None, mirror: str = None): args = ['install'] if package_name: args.append(package_name) elif requirements_path: args.extend(['-r', requirements_path]) if not mirror: mirror = 'https://mirrors.aliyun.com/pypi/simple/' args.extend(['--trusted-host', 'mirrors.aliyun.com', '-i', mirror]) if self.pip_install_arg: args.extend(self.pip_install_arg.split()) print(f"Pip 包管理器: {' '.join(args)}") result_code = pip_main(args) # 清除 pip.main 导致的多余的 logging handlers for handler in logging.root.handlers[:]: logging.root.removeHandler(handler) if result_code != 0: raise Exception(f"安装失败,错误码:{result_code}")