常见启动与更新问题排查
遇到终端刷红报错或者更新卡住千万不要慌张!
文档早就把大家平时最容易踩到的小水坑总结成排障清单啦,按照下面的步骤一步步检查,99% 的问题都能迎刃而解哦~
一、一键式无损更新与配置合并
更新代码时最担心的就是新版本的配置文件把我们自己辛苦填好的 API Key、Bot 昵称和开关给冲掉对不对?
不用担心!Eridanus 原生支持配置智能合并工具 tool.py:
1. Windows 用户更新步骤
- 双击运行根目录下的
更新脚本.bat。 - 该脚本会自动执行
git pull拉取最新代码,然后自动调用python tool.py。 tool.py的工作机制是:- 扫描你的所有
run/common_config/和各插件配置; - 自动备份当前配置为
.bak文件; - 比对新版本配置模板,将新增加的键值安全地合并进来,而你原本已经改好的值会 100% 完好无损地保留!
- 扫描你的所有
2. Linux 用户更新步骤
bash
cd /opt/Eridanus
source .venv/bin/activate
git pull
python tool.py
sudo systemctl restart eridanus二、常见更新报错排查
1. Git 网络连接超时 / SSL 握手失败
- 报错现象:text
fatal: unable to access 'https://github.com/...': Failed to connect to github.com port 443: Timed out 或 OpenSSL SSL_read: Connection was reset - 排障方法: GitHub 在国内部分网络环境下可能偶发连不上。如果你本地开启了网络加速工具,可以给 Git 设置全局代理端口(将
7890替换为你实际的本地代理端口):bash如果加速工具已关闭或不需要代理了,记得及时清除:git config --global http.proxy http://127.0.0.1:7890 git config --global https.proxy http://127.0.0.1:7890bashgit config --global --unset http.proxy git config --global --unset https.proxy - 切换 GitCode 镜像源: Eridanus 在
basic_config.yaml中提供了更新源选项:yaml如果你连接 GitHub 困难,可以将该字段改为# 0为官方GitHub源,1为GitCode国内源 git_update_source: 11。
2. Git 提示存在未提交修改冲突 (Merge Conflict)
- 报错现象:
error: Your local changes to the following files would be overwritten by merge... - 成因与解决: 你可能不小心在 Eridanus 核心代码文件里敲了改动。
- 如果只是改动了配置文件,配置文件通常都在
.gitignore中,不会产生冲突。 - 如果是源码改动,可以使用暂存命令:bash
git stash git pull git stash pop - 或者直接放弃对核心源码的本地修改:bash
git reset --hard HEAD git pull
- 如果只是改动了配置文件,配置文件通常都在
三、启动与连接报错排查
1. ModuleNotFoundError 依赖缺失
- 报错现象:
ModuleNotFoundError: No module named 'colorlog'或找不到某个第三方库。 - 排障方法: 通常是因为未在虚拟环境中运行,或者更新后项目引入了新依赖。进入终端执行:bash
# Windows .\.venv\Scripts\activate pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple # Linux source .venv/bin/activate pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple
2. OneBot 协议端连不上 / 连接被拒绝 (Connection Refused)
- 报错现象:终端不断提示无法连接到
ws://127.0.0.1:3001,或者 QQ 收发完全没有反应。 - 逐项核对清白:
- 协议端是否已启动并成功登录? 确认 SnowLuma / NapCat 控制台显示 QQ 账号在线。
- 协议类型是否正确? Eridanus 是主动连接的客户端,因此协议端内必须添加 正向 WebSocket 服务 (WebSocket Server),而不是反向!
- 端口是否一致? 检查协议端填写的监听端口与 Eridanus 配置文件
run/common_config/basic_config.yaml中的ws_link端口是否完全一致(默认皆为3001)。 - Access Token 是否清空? 如果协议端设置了访问 Token,而 Eridanus 没配置,握手会被直接拒绝。初次配置最省心的做法是将双方的 Token 均留空。
- 防火墙问题:如果协议端和 Eridanus 运行在不同的电脑/虚拟机/容器内,需将
127.0.0.1改为内网实际 IP,并在宿主机防火墙放行该端口。
3. WebUI 无法访问
- 默认访问地址:
http://127.0.0.1:5007 - 如果提示连接超时,检查
run/common_config/basic_config.yaml中的webui.enable是否为true。 - 如果是云服务器,需要登录云服务器厂商控制台(阿里云/腾讯云/华为云),在“安全组规则”中添加入方向规则,放行 TCP
5007端口。