上一节我们讲解了qq聊天的原理和qq机器人的框架以及运行流程,这一节我们来讲怎么配置环境,部署qq机器人。
有关代替qq客户端实现反向websocket连接这一部分内容由于一些原因,我无法在这里具体讲解,我把这部分内容放到了github中我的项目内,请自行查看。
nonebot是一个基于Python的机器人框架,它提供了丰富的插件系统,可以轻松地扩展机器人的功能。nonebot支持多种协议,包括QQ、Telegram、Discord等,因此你可以根据自己的需求选择合适的协议。
由于nonebot2对python环境有要求,所以建议使用虚拟环境或者anaconda来部署nonebot2,具体步骤如下:
具体anaconda的安装方法可以参考我之前发过的在ubuntu上配置pytorch环境的文章
从官网下载(参考: http://t.csdnimg.cn/5CWjX )
下载地址传送门:
官网首页:https://www.anaconda.com/
官网下载页:https://www.anaconda.com/products/individual#Downloads
在 Ubuntu 中,可以通过 Anaconda 创建一个 Python 3.10 的 Conda 虚拟环境。以下是详细步骤:
打开终端:
打开你的终端(Terminal)。
进入conda(如果终端中用户左边没有出现(base))
使用以下命令进入conda环境
cd ~
source anaconda3/bin/activate
创建 Conda 虚拟环境:
使用以下命令创建一个新的虚拟环境,并指定 Python 版本为 3.10:
conda create -n qqbot python=3.10
其中,qqbot
是你为虚拟环境指定的名字,请记住它,以便以后激活该环境。
激活虚拟环境:
创建完成后,激活你的虚拟环境:
conda activate qqbot
安装所需的包(nonebot2):
我们现在安装nonebot2,使用nonebot脚手架,可以参考nonebot2的官方文档进行安装
pip install nb-cli
查看虚拟环境列表(可选):
查看所有的 Conda 虚拟环境可以运行:
conda env list
退出虚拟环境(可选):
当完成工作后,可以退出虚拟环境:
conda deactivate
参考nonebot2的官方文档,使用nonebot脚手架创建一个简单的nonebot2项目
在打开虚拟环境的终端中输入以下命令:
nb create
这一指令将会执行创建项目的流程,你将会看到一些询问:
[?] 选择一个要使用的模板: bootstrap (初学者或用户)
这里我们选择 bootstrap 模板,它是一个简单的项目模板,能够安装商店插件。如果你需要自行编写插件,这里请选择 simple 模板。
[?] 项目名称: qqbat
这里我们以 qqbot 为例,作为项目名称。你可以根据自己的需要来命名。
[?] 要使用哪些驱动器? FastAPI (FastAPI 驱动器)
[?] 要使用哪些适配器? Console (基于终端的交互式适配器)
[?] 立即安装依赖? (Y/n) Yes
[?] 创建虚拟环境? (Y/n) Yes
这里我们选择了创建虚拟环境,nb-cli 在之后的操作中将会自动使用这个虚拟环境。如果你不需要自动创建虚拟环境或者已经创建了其他虚拟环境,nb-cli 将会安装依赖至当前激活的 Python 虚拟环境。
[?] 要使用哪些内置插件? echo
这里我们选择 echo 插件作为示例。这是一个简单的复读回显插件,可以用于测试你的机器人是否正常运行。
在命令行中进入项目文件夹,然后输入以下命令启动nonebot2项目:
cd qqbot # 项目名称,进入项目文件夹
nb run
现在应该已经运行起来了你的第一个 NoneBot 项目了!请注意,生成的项目中使用了 FastAPI 驱动器和 Console 适配器,你之后可以自行修改配置或安装其他适配器。但此时的qq机器人并没有登陆qq,也无法与qq进行交互,接下来我们需要在qq配置反向websocket客户端
此部分内容由于一些原因无法在此处展示,请查阅github中该项目中这一节的内容(class2.md)
在项目运行起来后,Console
适配器会在你的终端启动交互模式,你可以直接在输入框中输入 /echo hello world
来测试你的机器人是否正常运行。