Linux 常见问题
本页汇总在 Linux 系统上部署 MaiBot 时可能遇到的常见问题及解决方法。若遇到其他问题,欢迎在 Issue 或群组中反馈。
1. 部署前的准备
Q:我对 Linux 系统不熟悉,觉得部署步骤太难怎么办?
如果您对 Linux 命令和系统管理不太熟悉,建议优先选择以下更简单的部署方式:
- Docker 部署:提供容器化的一键运行方案,详见 Docker 部署指南。
- Windows 部署:在 Windows 系统上通过图形界面操作,详见 安装指南。
2. 虚拟环境问题
Q:传统 venv 和 uv 虚拟环境可以混用吗?
不可以。传统 venv(通过 python -m venv 创建)和现代 uv(通过 uv venv 创建)是两种不同的虚拟环境机制,绝对不能混合使用。
- 如果选择了
uv,请全程使用uv命令(uv pip install、uv run等)。 - 如果选择了传统
venv,请全程使用venv的activate脚本激活环境后再执行操作。 - 混合使用会导致依赖安装位置混乱,引发
ModuleNotFoundError等异常。
Q:使用传统 venv 时,每次都要手动激活吗?
是的。使用传统 venv 时,每次打开新的终端窗口或标签页都需要手动激活虚拟环境,否则将使用系统全局 Python 环境,导致依赖找不到。
激活命令(在 MaiBot 项目根目录下):
bash
source venv/bin/activate激活后终端提示符前会显示 (venv) 标识。
Q:启动时提示“命令未找到”或“模块不存在”?
请检查:
- 虚拟环境是否激活:确认终端提示符前有
(venv)或已使用uv run。 - 启动方式是否与安装方式匹配:如果用传统
venv安装依赖,启动时也应使用source venv/bin/activate && python bot.py;如果用uv安装,启动时应使用uv run python bot.py。 - 当前路径是否正确:确保在 MaiBot 项目根目录下执行启动命令。
3. 依赖安装问题
Q:安装依赖时 quick_algo 编译失败怎么办?
quick_algo 是 LPMM(语言模型内存管理)模块的底层依赖,需要编译 C/C++ 扩展。若安装失败:
- 安装编译工具链:确保系统已安装
gcc、g++、make等编译工具。bash# Debian/Ubuntu sudo apt update && sudo apt install build-essential # CentOS/RHEL sudo yum groupinstall "Development Tools" - 参考 LPMM 文档:详细安装和手动编译步骤请参考 LPMM 使用说明 中“手动编译”部分。
- 临时跳过:若仅用于测试,可尝试注释掉
requirements.txt中quick_algo相关行(但不推荐长期使用)。
4. 运行与连接问题
Q:Napcat 连接不上怎么办?
- 确认 Napcat 已正常启动,并在 Napcat 中创建了 WebSocket 客户端(反向代理)。
- 检查
MaiBot-Napcat-Adapter/config.toml中[Napcat_Server]的host和port是否与 Napcat 设置一致。 - 确保 MaiBot 本体的
.env中PORT与[MaiBot_Server]的port一致。 - 检查防火墙是否阻止了本地回环(
127.0.0.1)端口通信:bashsudo ufw status # 查看防火墙状态
Q:启动时报“端口已被占用”错误?
修改 .env 文件中的 PORT 值为其他未被占用的端口(如 8001、8080 等),并同步更新 Adapter 配置中的 [MaiBot_Server].port。