LangBot icon indicating copy to clipboard operation
LangBot copied to clipboard

[Bug]: Docker 更新重建容器后插件依赖丢失

Open RockChinQ opened this issue 1 year ago • 2 comments

部署方式

手动部署

消息平台适配器

None

系统环境

\

Python环境

\

QChatGPT版本

\

异常情况

\

日志信息

No response

启用的插件

No response

RockChinQ avatar Jul 28 '24 13:07 RockChinQ

这个问题好像一直延续到了最新的版本,应该是由于安装插件时会通过插件路径下的requirements.txt安装相关依赖,但是安装完成之后无论是LangBot本身还是插件都不会检查是否缺少相关的依赖,导致重建容器时会因为缺少插件相关的依赖而无法加载插件。

目前手动的一个解决方法是每次重建容器后进入容器插件相关的路径,手动pip install -r requirements.txt,之后再热重载插件就可以。

但是这样的话每次更新版本都要重新下过镜像,也就意味着每次更新就需要重建容器,然后重复上述步骤手动添加插件需要的依赖后再热重载,这样如果后续插件生态一多的话就不利于这种通过docker运行的方式。希望日后能找到一种好的自动解决方法吧。🙏

目前我想到的一种方法就是规范插件开发,要求在插件运行相关功能前先检查是否缺少依赖,并进行相关的依赖补全(就像本项目main.py做的那样),但这样要求所有的插件开发者都按照某一种规范来编写插件,对于现有的或者已经不再维护的插件而言可能并不是一件容易的事......

DetLFY avatar Jan 30 '25 17:01 DetLFY

因为现有的插件机制有一些过时了,最近在考虑重新设计,这个依赖安装的问题自然也会考虑进去的。

RockChinQ avatar Feb 01 '25 05:02 RockChinQ