diff --git a/docs/plugins/dependency-management.md b/docs/plugins/dependency-management.md index d558c6703..2f07d8821 100644 --- a/docs/plugins/dependency-management.md +++ b/docs/plugins/dependency-management.md @@ -69,7 +69,7 @@ class MyPlugin(BasePlugin): ```toml [dependency_management] -# 是否启用自动安装 +# 是否启用自动安装(主开关) auto_install = true # 安装超时时间(秒) @@ -85,9 +85,6 @@ pip_options = [ "--disable-pip-version-check" ] -# 是否允许自动安装(主开关) -allowed_auto_install = true - # 安装前是否提示用户 prompt_before_install = false @@ -164,10 +161,10 @@ configure_dependency_settings(auto_install_timeout=600) ## 安全考虑 -- 自动安装功能默认启用,但可以通过配置禁用 +- 自动安装功能默认启用,但可以通过`auto_install=false`配置禁用 - 所有安装操作都有详细的日志记录 - 支持设置安装超时以避免长时间挂起 -- 可以通过`allowed_auto_install`全局禁用自动安装 +- 通过单一的`auto_install`开关控制所有自动安装行为 ## 故障排除 diff --git a/src/config/official_configs.py b/src/config/official_configs.py index 7b0c54f1d..b1a0d2dc8 100644 --- a/src/config/official_configs.py +++ b/src/config/official_configs.py @@ -871,7 +871,7 @@ class DependencyManagementConfig(ConfigBase): """插件Python依赖管理配置类""" auto_install: bool = True - """是否启用自动安装Python依赖包""" + """是否启用自动安装Python依赖包(主开关)""" auto_install_timeout: int = 300 """安装超时时间(秒)""" @@ -888,9 +888,6 @@ class DependencyManagementConfig(ConfigBase): ]) """pip安装选项""" - allowed_auto_install: bool = True - """是否允许自动安装(主开关),关闭后所有插件都不会自动安装依赖""" - prompt_before_install: bool = False """安装前是否提示用户(暂未实现)""" diff --git a/src/plugin_system/utils/dependency_config.py b/src/plugin_system/utils/dependency_config.py index 6d87ad6fb..8bc4c9d71 100644 --- a/src/plugin_system/utils/dependency_config.py +++ b/src/plugin_system/utils/dependency_config.py @@ -66,13 +66,7 @@ class DependencyConfig: "--disable-pip-version-check" ] - @property - def allowed_auto_install(self) -> bool: - """是否允许自动安装""" - config = self._get_config() - if config and hasattr(config, 'dependency_management'): - return config.dependency_management.allowed_auto_install - return True + @property def prompt_before_install(self) -> bool: diff --git a/src/plugin_system/utils/dependency_manager.py b/src/plugin_system/utils/dependency_manager.py index b51a54c0a..fb15a0b96 100644 --- a/src/plugin_system/utils/dependency_manager.py +++ b/src/plugin_system/utils/dependency_manager.py @@ -38,7 +38,6 @@ class DependencyManager: self.proxy_url = config.proxy_url if proxy_url is None else proxy_url self.install_timeout = config.install_timeout self.pip_options = config.pip_options.copy() - self.allowed_auto_install = config.allowed_auto_install except Exception as e: logger.warning(f"无法加载依赖配置,使用默认设置: {e}") @@ -47,7 +46,6 @@ class DependencyManager: self.proxy_url = proxy_url self.install_timeout = 300 self.pip_options = ["--no-warn-script-location", "--disable-pip-version-check"] - self.allowed_auto_install = True def check_dependencies(self, dependencies: Any, plugin_name: str = "") -> Tuple[bool, List[str], List[str]]: """检查依赖包是否满足要求 @@ -98,7 +96,7 @@ class DependencyManager: if not packages: return True, [] - if not self.auto_install or not self.allowed_auto_install: + if not self.auto_install: logger.info(f"[Plugin:{plugin_name}] 自动安装已禁用,跳过安装: {packages}") return False, packages diff --git a/template/bot_config_template.toml b/template/bot_config_template.toml index 634161f28..3f227a018 100644 --- a/template/bot_config_template.toml +++ b/template/bot_config_template.toml @@ -255,7 +255,7 @@ suppress_libraries = ["faiss","httpx", "urllib3", "asyncio", "websockets", "http library_log_levels = { "aiohttp" = "WARNING"} # 设置特定库的日志级别 [dependency_management] # 插件Python依赖管理配置 -# 是否启用自动安装Python依赖包 +# 是否启用自动安装Python依赖包(主开关) auto_install = true # 安装超时时间(秒) @@ -271,9 +271,6 @@ pip_options = [ "--disable-pip-version-check" ] -# 是否允许自动安装(主开关),关闭后所有插件都不会自动安装依赖 -allowed_auto_install = true - # 安装前是否提示用户(暂未实现) prompt_before_install = false