Skip to content

安装 ​

想把 ZCBOT 跑起来,按下面走完就行。不需要编程基础;依赖装漏了启动时也会自动补。

方式 A · pip 安装(推荐,最省事) ​

bash
pip install zcbot
zcbot
  • 配置与数据落在 ~/.zcbot(可用环境变量 ZCBOT_HOME 指定其它目录);首次启动自动生成 config.yaml、core_plugins.yaml 和 data/。
  • 升级:pip install -U zcbot(~/.zcbot 下的配置/数据不会被动)。

方式 B · 源码安装(想改内核 / 二次开发时用) ​

开始前先备好这些 ​

需要说明
Python 3.10+建议 3.10–3.14;Windows / Linux / macOS 均可
(可选)聊天接入端只有要收发聊天消息才需要;纯定时 / Webhook 可以先不接。对接见 对接 IM 平台

第 1 步:下载代码 ​

bash
git clone https://gitee.com/liquanfeng123/zcbot.git
cd zcbot

没有 git 的话,也可以在 GitHub 页面点 Code → Download ZIP,解压后进入目录。

第 2 步:虚拟环境(必做) ​

bash
# Linux / macOS
python3 -m venv .venv
source .venv/bin/activate
# Windows(PowerShell / cmd)
py -m venv .venv
.venv\Scripts\activate

不要跳过。 框架运行期会自己调 sys.executable -m pip 补装插件依赖,不隔离会踩三类问题:

问题现象
系统 Python 禁止全局 pipDebian 12 / Ubuntu 23+ / 多数容器镜像报 error: externally-managed-environment,所有自动补装静默失败,插件全部加载不出来
版本冲突无法回退插件 A 要 flask<3、插件 B 要 flask>=3,装到系统里只能二选一且污染系统包
无法整体回滚升级框架后要退回旧版本,依赖没隔离只能手工收拾

激活后所有 pip / python 都指向 .venv,不要用 sudo pip(会绕过 venv 装到系统里)。

第 3 步:装依赖 ​

bash
pip install -r requirements.txt -i https://mirrors.tuna.tsinghua.edu.cn/pypi/web/simple

依赖也写在 pyproject.toml 里,两处保持同步:日常启动自检读 requirements.txt,工具链读 pyproject.toml。 改依赖时两处都要改;只使用的话装 requirements.txt 就够了。

常用核心包:websockets(连接)、apscheduler(定时)、bcrypt(密码)、psutil(监控)。 flask + flask-cors + waitress(Web 管理后台)默认不装:纯机器人部署下 API 层注册假节点;启用 core_plugins/webui 后由插件加载器自动补装。

这一步漏了也能救,但别指望

python main.py 启动时会自检 requirements.txt,缺包会走内置镜像(清华→阿里→豆瓣→官方)自动装; 插件自己的依赖也会在加载时自动装。但在系统 Python 下这套自愈会因为上面第一条直接失败, 而且自动装在事件循环里同步执行,首次启动会阻塞几秒到几十秒。手动装一次最省事。

MySQL 用户额外需要 pymysql、DBUtils(切到 MySQL 时平台内核会提示并安装)。

第 4 步:启动 ​

bash
python main.py

首次启动会生成 config.yaml、core_plugins.yaml 和 data/。

注意:官方插件大部分默认关闭,但 echo / help / scheduler / webui 默认开启(core_plugins.yaml 中其余插件 enabled 为 false)。 需要哪个能力,就把对应插件 enabled 改为 true,或用 python tools/scan_core_plugins.py --enable <插件名>,然后重启框架。 例如要进 Web 后台就得启用 webui;要收发聊天消息就得启用某个接入端(如 onebot_adapter)。

看到类似输出即成功(默认仅启用 echo / help / scheduler / webui 几个官方插件):

ZCBOT 框架 启动中...
框架启动完成,等待消息...

接着做:

  1. 浏览器打开 http://127.0.0.1:8080 → 进 开始使用
  2. 要连聊天软件 → 进 对接 IM 平台
  3. 要写功能 → 进 编写插件

目录结构(以后会用到的) ​

zcbot/
├── main.py                 # 启动入口:python main.py [自定义配置路径]
├── config.yaml             # 全局配置(首次启动自动生成)
├── core_plugins.yaml       # 官方插件开关/配置(启动自动同步)
├── requirements.txt        # 依赖清单(启动自检读它)
├── pyproject.toml          # 项目元数据(与 requirements 同步)
├── framework/              # 平台内核
├── core_plugins/           # 官方插件(在 yaml 里开关)
│   ├── onebot_adapter/     #   OneBot 11(默认关,需启用)
│   ├── webui/              #   Web 后台(默认关,需启用)
│   ├── session/            #   多轮会话(默认关,需启用)
│   ├── scheduler/          #   定时任务(默认关,需启用)
│   ├── telegram/ discord/  #   其它接入端(默认关,填凭证后开)
│   ├── kook/ matrix/       #   KOOK 与 Matrix 接入端(默认关)
│   ├── qq_official/ ws_client/ http_inject/ http_api/
├── plugins/                # 你的插件(每个一个文件夹)
├── data/                   # 运行数据:logs/、数据库、plugins_dat/
├── web/                    # 后台前端静态资源
├── sql/                    # 建表脚本
├── tests/                  # 自测
└── docs/                   # 本文档

日常最常碰:plugins/(写功能)、core_plugins.yaml(开关/接平台)、data/(日志与数据)。

升级 ​

bash
git pull
pip install -r requirements.txt   # 补全新依赖

插件配置和数据库都在 data/ 下,升级不会清空。旧版散落在插件目录里的配置会自动迁到 data/plugins_dat/<名>/。

下一步 ​

基于 MIT + Apache 2.0 双协议发布