mirror of
https://github.com/zhenxun-org/zhenxun_bot.git
synced 2026-09-29 00:32:06 +08:00
✨ 新增依赖管理功能,支持安装和卸载虚拟环境依赖,同时优化相关API和数据模型 (#1936)
This commit is contained in:
@@ -31,7 +31,9 @@ class VirtualEnvPackageManager:
|
||||
def __get_command(cls) -> list[str]:
|
||||
if path := Config.get_config("virtualenv", "python_path"):
|
||||
return [path, "-m", "pip"]
|
||||
return cls.WIN_COMMAND if BAT_FILE.exists() else cls.DEFAULT_COMMAND
|
||||
return (
|
||||
cls.WIN_COMMAND.copy() if BAT_FILE.exists() else cls.DEFAULT_COMMAND.copy()
|
||||
)
|
||||
|
||||
@classmethod
|
||||
def install(cls, package: list[str] | str):
|
||||
@@ -57,8 +59,10 @@ class VirtualEnvPackageManager:
|
||||
f"安装虚拟环境包指令执行完成: {result.stdout}",
|
||||
LOG_COMMAND,
|
||||
)
|
||||
return result.stdout
|
||||
except CalledProcessError as e:
|
||||
logger.error(f"安装虚拟环境包指令执行失败: {e.stderr}.", LOG_COMMAND)
|
||||
return e.stderr
|
||||
|
||||
@classmethod
|
||||
def uninstall(cls, package: list[str] | str):
|
||||
@@ -72,6 +76,7 @@ class VirtualEnvPackageManager:
|
||||
try:
|
||||
command = cls.__get_command()
|
||||
command.append("uninstall")
|
||||
command.append("-y")
|
||||
command.append(" ".join(package))
|
||||
logger.info(f"执行虚拟环境卸载包指令: {command}", LOG_COMMAND)
|
||||
result = subprocess.run(
|
||||
@@ -84,8 +89,10 @@ class VirtualEnvPackageManager:
|
||||
f"卸载虚拟环境包指令执行完成: {result.stdout}",
|
||||
LOG_COMMAND,
|
||||
)
|
||||
return result.stdout
|
||||
except CalledProcessError as e:
|
||||
logger.error(f"卸载虚拟环境包指令执行失败: {e.stderr}.", LOG_COMMAND)
|
||||
return e.stderr
|
||||
|
||||
@classmethod
|
||||
def update(cls, package: list[str] | str):
|
||||
@@ -109,8 +116,10 @@ class VirtualEnvPackageManager:
|
||||
text=True,
|
||||
)
|
||||
logger.debug(f"更新虚拟环境包指令执行完成: {result.stdout}", LOG_COMMAND)
|
||||
return result.stdout
|
||||
except CalledProcessError as e:
|
||||
logger.error(f"更新虚拟环境包指令执行失败: {e.stderr}.", LOG_COMMAND)
|
||||
return e.stderr
|
||||
|
||||
@classmethod
|
||||
def install_requirement(cls, requirement_file: Path):
|
||||
@@ -140,11 +149,13 @@ class VirtualEnvPackageManager:
|
||||
f"安装虚拟环境依赖文件指令执行完成: {result.stdout}",
|
||||
LOG_COMMAND,
|
||||
)
|
||||
return result.stdout
|
||||
except CalledProcessError as e:
|
||||
logger.error(
|
||||
f"安装虚拟环境依赖文件指令执行失败: {e.stderr}.",
|
||||
LOG_COMMAND,
|
||||
)
|
||||
return e.stderr
|
||||
|
||||
@classmethod
|
||||
def list(cls) -> str:
|
||||
|
||||
Reference in New Issue
Block a user