NoneBot2开源通信框架安装配置指南 - Go-cqhttp

2023-02-11 06:13:08 来源:腾讯云

一、前言

NoneBot2为跨平台Python异步聊天机器人框架,本文将阐述在Linux系统搭建一套QQ机器人,如何在日常使用中带来更多便利,为我们服务。

二、安装及配置必要运行环境

本文以Gentoo Linux作为演示,其他发行版操作上没有本质区别。


(资料图)

1、安装pip

可以从软件源里安装,也可以通过get-pip脚本安装:

wget https://bootstrap.pypa.io/get-pip.pypython get-pip.py

注意Python必须是3.x版本。

当然也可以编译安装,选择其中一种方式安装即可。作为演示,这里直接从软件源进行安装:

安装成功后检查下版本:

pip --version

2、安装nb-cli并配置PATH

nb-cliNoneBot2的脚手架,后续都将使用脚手架管理运行项目,使用pip安装即可:

pip install nb-cli

二进制文件路径默认在当前目录的.local/bin下面,因此需要加入到PATH环境变量中去:

echo "export PATH=$PATH:/root/.local/bin" >> /etc/profilesource /etc/profile

路径要根据实际路径做更改,或者将二进制目录mv到已有的PATH路径中。

这里使用zsh作为shell解释器,因此写入的是zsh配置文件,或者写入到/etc/zsh/zprofile

echo "export PATH=$PATH:/root/.local/bin" >> .zshrcexec zshecho $PATH

查看版本号:

nb --version

这里的版本为nb cli版本,并非NoneBot版本,因此不要被误导,以为自己装的是nonebot1。

三、NoneBot2配置及参数选择

1、创建NoneBot项目

直接执行nb命令:

cd /optnb

会交互式询问,这里选择第一项回车。

2、选择bootstrap框架

接着选择bootstrap回车:

3、选择驱动器

输入项目名后,回车选择FastAPI驱动器:

4、选择通信协议

使用空格选择通信协议,QQ平台这里选择OneBot V11,之后回车:

V12刚出不久,相对V11不太稳定成熟,目前绝大部分插件也是基于V11兼容的。

5、安装依赖及创建虚拟环境变量

安装依赖、创建虚拟环境变量这里默认都选YES:

6、选择内建插件echo

内建插件,选择echo即可:

7、测试运行

安装完后会提示运行命令,cd到项目目录,测试运行情况:

cd test-bot nb run --reload

到此项目创建完成,CTRL+C终止。

四、go-cqhttp配置与安装

1、安装go-cqhttp

go-cqhttp并不需要手动独立安装,NoneBot2已经把它集成为插件并可以通过nb去管理插件,用户并不需要去关心go-cqhttp安装在哪,相对前一个版本简化了大量配置。

使用nb命令,依次选择Manage bot plugins--> Install nonebot plugin to current project并回车:

输入nonebot_plugin_gocqhttp插件名回车:

到此go-cqhttp安装完成。其他所有插件也可以使用此类方式安装,当然也可以使用如下命令安装:

pip安装:
pip install 
nb安装:
nb plugin install 

2、配置.env.prod

每个项目目录下都会有一个.env.prod配置文件,所有插件的变量名等都会在这个文件里定义,也包括NoneBot2自带的一些变量。

这里如下设置:

DRIVER=~fastapi   #指定驱动器,默认已有HOST=0.0.0.0  # 监听IPPORT=36985    # 监听端口SUPERUSERS=["123456789"]  # 超级管理员QQ,即机器人主人QQ,改成自己的COMMAND_START=["/", ""]  # 配置命令起始字符COMMAND_SEP=["."]  # 配置命令分割字符

3、配置go-cqhttp

使用nb run运行后,可以看到go-cqhttp监听了我们在.env.prod设置的端口:

使用浏览器访问URL:http://IP:36985/go-cqhttp/#/

可以看到进程日志都会在这里展示,并且自带一些简要的系统资源监控情况。

点击左上角的添加账号,输入要运行机器人的QQ账号,并选择设备类型:

可以仅输入账号,然后在控制台进程日志扫码登录,也可以账号密码一并输入,出于安全考虑更建议前者。

设备类型选择,只要不涉及多端登录导致冲突即可,这里选择Android Watch

之后点击启动:

进程日志会输出二维码,使用刚刚提交的QQ账号扫描登录即可。

到此则说明没有任何问题,此时可以关闭浏览器端,浏览器这步主要用于配置QQ账号、查看系统负载等。

4、测试验证

我们前面已经安装echo内建插件,用于打印输出。私聊机器人或者群里艾特机器人,测试生效情况:

五、写SystemD服务

可选项,为了方便管理NoneBot2服务,如果你觉得太麻烦也可以考虑使用screennohup &

root@Gentoo# vim /etc/systemd/system/nonebot.service[Unit]Description=Nonebot Daemon ServiceAfter=network.target[Service]User=rootWorkingDirectory=/opt/test-botExecStart=/root/.local/bin/nb runExecStop=/usr/bin/pkill -9 nb[Install]WantedBy=multi-user.target

写完服务后,重载systemd并启用开机自启动:

systemctl daemon-reloadsystemctl enable --now nonebot.servicesystemctl status nonebot.service

附带PDF版本:

NoneBot2开源通信框架安装配置指南.pdf

六、附录

1.NoneBot2官方文档

2.NoneBot2项目主页

3.Go-cqhttp

4.NoneBot2插件页面

标签: DevOps 解决方案 Linux Socket编程 Bootstrap

西陇科学: 第五届监事会第十四次会议决议公告

证券代码:002584       证券简称:西陇科学      公告编号:2022-080         ...

2022-12-07 19:01:59

汉嘉设计:近期公司作为联合体成员之一中标了钱潮嘉苑共有产权房项目EPC工程总承包工程_每日观点

(原标题:汉嘉设计:近期公司作为联合体成员之一中标了钱潮嘉苑共有产权房项目EPC工程总承包工程)同花...

2022-12-06 17:38:42

山东推出文化体验主题旅游产品 推出多种旅游惠民措施

据山东省文化和旅游厅消息,为迎接第12个中国旅游日,山东将整合全省文旅资源,策划推出2022文化体验主...

2022-05-22 19:23:40

唐山加快验收时间 为建筑工地开复工保驾护航

唐山市住建局坚持两手抓、两手硬,统筹疫情防控和经济发展,想尽一切办法,简化一切手续,实现一路绿灯...

2022-03-19 15:15:42

消费者“身材焦虑” 减肥市场疯狂吸金

三月不减肥,四月徒伤悲。冬去春来之际,为了能穿上各种漂亮轻薄的服装,变得更瘦成为了许多人的追求,...

2022-03-19 15:14:49

2月份秦皇岛新建商品住宅销售价格环比下降0.2% 同比下降4%

3月16日,国家统计局公布2月份70个大中城市商品住宅销售价格变动情况,河北省入统的石家庄、唐山、秦皇...

2022-03-19 15:13:01

深圳技术进出口全年合同数量共1347项 同比增长2.51%

科技部火炬中心近日公布了2021年度全国技术合同交易数据。截至2021年12月31日,全国共登记技术合同67050...

2022-03-19 15:10:37

邢台柏乡:打造羊肚菌产业示范带 引领村级集体经济发展

我们通过打造食用菌产业高标准试验示范园,不仅盘活了闲置土地,还进一步增加了群众和村集体经济收入。...

2022-03-19 15:09:40

胡金秋32分17板 浙江广厦男篮“双杀”稠州金租

CBA浙江德比二番战昨晚开打,再度狭路相逢的浙江广厦男篮与浙江稠州金租男篮表现难分伯仲,比赛直到最后...

2022-03-19 15:07:37

新疆北部有降雪 湖北、湖南等地出现大雾

中新网12月13日电 据中央气象台网站消息,昨日8时至今日6时,内蒙古东北部、黑龙江东北部等地部分地区...

2021-12-13 08:35:21
x 广告
x 广告

Copyright ©  2015-2023 印度经营网版权所有  备案号:沪ICP备2022005074号-8   联系邮箱:58 55 97 3@qq.com