🎨 自动安装依赖失败之后修改重试

This commit is contained in:
KimigaiiWuyi 2024-09-30 23:50:14 +08:00
parent 0c8699ba87
commit 3e6ac712ef

View File

@ -266,24 +266,40 @@ def install_dependencies(dependencies: Dict, need_update: bool = False):
CMD = f'{start_tool} install "{dependency}{version}" {extra}' CMD = f'{start_tool} install "{dependency}{version}" {extra}'
try: try:
logger.info(f'[安装/更新依赖] 开始执行:{CMD}') execute_cmd(CMD)
result = subprocess.run( except Exception as e1:
CMD, logger.exception(
capture_output=True, f'[安装/更新依赖] 安装失败(将会重试一次):{e1}'
text=True,
shell=True,
) )
# 检查命令执行结果 if ' python -m' in start_tool:
if result.returncode == 0: start_tool = start_tool.replace('python -m', '')
logger.success(f"依赖 {dependency} 安装成功!") CMD = (
else: f'{start_tool} install "{dependency}{version}" {extra}'
logger.warning("依赖安装失败。错误信息:") )
logger.warning(result.stderr) try:
except Exception as e: execute_cmd(CMD)
logger.exception(f'[安装/更新依赖] 安装失败:{e}') except Exception as e2:
logger.exception(f'[安装/更新依赖] 安装失败:{e2}')
installed_dependencies = get_installed_dependencies() installed_dependencies = get_installed_dependencies()
def execute_cmd(CMD: str):
logger.info(f'[CMD执行] 开始执行:{CMD}')
result = subprocess.run(
CMD,
capture_output=True,
text=True,
shell=True,
)
# 检查命令执行结果
if result.returncode == 0:
logger.success(f"[CMD执行] {CMD} 成功执行!")
else:
logger.warning(f"[CMD执行] {CMD}执行失败。错误信息:")
logger.warning(result.stderr)
return result.returncode
def get_installed_dependencies(): def get_installed_dependencies():
global installed_dependencies global installed_dependencies
installed_packages = pkg_resources.working_set installed_packages = pkg_resources.working_set