三个插件,三次"找不到文件
装插件那两天,我连着遇到三个报错,长得非常像——都在说找不到某个文件。我最开始的处理方式也是一样的:去把缺的文件补上。结果只有一个是真缺文件。
音乐插件的卡片渲染
我明明在音乐插件里选了纯文本模式,日志里却有:
[WARN] ncm-detail 本地渲染失败: BrowserType.launch:
Executable doesn't exist at /root/.cache/ms-playwright/chromium_headless_shell-1234/...
是 playwright,它要开一个无头浏览器把歌曲卡片渲染成图片。我这个容器里没装浏览器。
更麻烦的是它不看我的模式选择:我选了纯文本,它照样调渲染。渲染失败之后,指令还被主 AI 当成普通聊天处理了,答非所问,我要点歌它跟我聊天。
治标是给它装上。国内不设镜像基本下不动:
docker exec -it astrbot bash
export PLAYWRIGHT_DOWNLOAD_HOST=https://npmmirror.com/mirrors/playwright/
playwright install chromium
容器里连编辑器都没有,得先 apt update && apt install -y nano。
治本是改插件源码,让渲染函数第一行就返回:
def _render_card(...):
return None
我最后用了治本,重启之后卡片没了,点歌正常响应。
舞萌的资源包
No such file or directory:
'/AStrBot/data/plugin_data/astrbot_plugin_maimaidx/static/mai/pic/b50_score_basic.png'
我明明把官方资源包解压进 static/ 了。进去 ls 一下:
static/
└── Resource CN1.55/ ← 多出来的一层
└── mai/
└── pic/
插件找的是 static/mai/pic/...,资源在 static/Resource CN1.55/mai/pic/...。挪平就是了:
cd /AStrBot/data/plugin_data/astrbot_plugin_maimaidx/static/
mv "Resource CN1.55"/* mai/
rm -rf "Resource CN1.55"
docker restart astrbot
这个属于纯手滑,代价是一次重启。以后大资源包解压完我都先 ls 一眼。
Galgame 那次的"卸载重装"
加载失败插件(1)... not enough values to unpack (expected 2, got 1)
expected 2, got 1 这种报错一般是拆字符串拆出来的。翻配置,push_list 那一项我填的是:
123456789
它期望的格式是 平台-群号:
qq-123456789
分隔符没写,一拆只有一个值,直接崩。
我卸载插件重装了一遍。一样的报错。 因为卸载插件不会删数据库里的配置,重装之后它读的还是那条坏配置——等于我什么都没做。
最后两件事一起办:后台把 push_list 清空留白,再删物理目录重装:
rm -rf /root/astrbot/data/plugins/astrbot_plugin_galgame_box
这个插件另外还有两个问题:抓图站被 Cloudflare 拦(返回 403,页面写着 Just a moment...),得装 curl_cffi 才过得去;还得填代理地址和一个 cf_clearance Cookie。
三个报错都是"找不到东西",实际要做的事完全不同:第一个是补依赖(或者改源码绕开),第二个是挪路径,第三个是清配置。现在我碰到"找不到文件",第一件事是先确认它在哪个路径下找,那个路径下现在有什么,两边对齐,基本就结束了。