用NoneBot2搭建QQ机器人(保姆级教程)

一、前言

Nonebot2

        主播主播,有没有既简单又方便的QQ机器人框架啊?有的兄弟,有的。NoneBot2 是一个现代、跨平台、可扩展的 Python 聊天机器人框架,它基于 Python 的类型注解和异步特性,能够为你的需求提供便捷灵活的支持,在开发聊天机器人方面具有诸多优势和特点。
        在一周之前我也是一个刚入坑的小白,文档看不很懂,各个平台的教程都比较旧了,寻找信息方面费了好大功夫。所以我想站在小白的角度,出一份保姆级教程,为了方便理解,而不是直接生搬硬套,我会对一些专业术语进行简洁的解释,安利一波!(当然,在不久的将来,这个教程可能也会落后,哈哈)

官方QQ群:768887710
官方文档:https://nonebot.dev
GitHub项目地址(可能需要魔法):https://github.com/nonebot

二、 QQ机器人搭建教程

        注意:在搭建QQ机器人之前必须先安装好Python,也就是必须在Python环境下才可以搭建,并且Python的版本必须>=3.9。

(一)更新pip

       先更新一下pip,减少后面问题的出现,在下图路径中输入cmd进入命令提示符,依次输入以下两条命令,一条一条输入哈,成功后关闭:

deactivate  //进入虚拟环境(输入这个指令会没有任何反应。这是正常现象)
python -m pip install --upgrade pip

(二)安装pipx

        pipx是一个用于在隔离环境中安装和运行 Python 应用程序的工具,它旨在解决在系统范围内安装 Python 包可能导致的依赖冲突和环境混乱问题。
        win+R输入cmd进入命令提示符,依次输入以下两条命令,一条一条输入哈,成功后关闭命令提示符(这里要关一下,再重新打开输入“(三)”中的指令):

python -m pip install --user pipx
python -m pipx ensurepath

(三)安装脚手架nb-cli

        脚手架原本是建筑工程中为了保证施工人员安全和方便施工而搭建的临时设施,在软件开发中,它是一种可以为开发者提供项目基础结构和基本功能的工具或框架,能够帮助开发者快速搭建项目的初始架构。
        重新打开命令提示符,接着输入以下命令,成功之后关闭命令提示符

pipx install nb-cli

(四)创建项目

       前两步已经把环境搭建好了,现在开始创建一个自己的机器人项目。随便在一个位置新建一个文件夹,任意一个盘或者桌面 都行(这里我创建了一个NoneBot2文件夹),进入文件夹,然后在此路径下输入cmd然后回车进入命令提示符输入以下指令:

nb

然后就会呈现出如下图的界面,会让你进行一系列的选择来配置机器人,然后按照我下面描述的步骤进行操作:
nb

1、你想要进行什么操作?

       选择创建一个 NoneBot 项目

2、选择一个要使用的模板:

       选择simple(插件开发者)。(这里很多教程都会让新手选bootstrap,确实方便简洁,但都是新手了,肯定是啥都不懂,再简洁也看不懂。因为很多大佬他们选择的都是bootstrap,这个可以自己开发插件,而simple是只能安装官方插件商店的。大佬们往往不太了解simple,所以为了方便问大佬问题,推荐用simple,下面我也会简洁介绍一下simple的结构)

3、项目名称:

       也就是你机器人的文件名,过一会会生成一个你输入项目名称的文件夹,里面就是构成机器人的文件。(这里只能输入英文,我输入的是George)

4、要使用哪些适配器?

       选择 OneBot V11(OneBot V11 协议)。(注意:这里不能直接回车选择,直接回车的话就是空选,要先把前面那个圆点点了,如果不小心直接回车空选了也没事,后面会提示让你确认一下。适配器和下面的驱动器都可以多选,不同的插件对适配器和驱动器要求不同,如果你以后安装的插件需要其他的适配器和驱动器,需要再安装,这也就是可以多选的原因,但我们刚创建,只选这一个常用的就行)

5、要使用哪些驱动器?

       也就选一个常用的默认的FastAPI (FastAPI 驱动器),这里圆点本来就是饱满的,所以就直接回车就行。

6、请输入插件存储位置:

       选择在“src”文件夹中,也就是以后你自己开发的插件要放在这,只有放在这里,插件才能运行。不过这里只放自己开发的,在官方插件商店里下载的插件可不在这,下面会讲。选择存在src中,是为了清晰分明,避免与其他文件混淆。

7、立即安装依赖?

       输入Y。在 NoneBot2 中,依赖是一种用于处理事件处理函数的前置条件和数据准备的机制。通过使用依赖,Nonebot2 可以更方便地管理事件处理函数的前置条件和数据准备,提高代码的可维护性和可扩展性,同时也可以使代码结构更加清晰,将不同的功能模块分离,降低代码的耦合度。

8、创建虚拟环境?

       输入Y。Nonebot2 机器人项目通常会使用大量的第三方库和插件,这些库和插件可能对特定 Python 包的版本有不同的要求。例如,一个插件可能需要 numpy 的 1.18 版本,而另一个插件可能需要 numpy 的 1.20 版本。如果将它们安装在系统的全局 Python 环境中,就会产生冲突,导致某些插件无法正常工作。通过创建虚拟环境,可以为每个 Nonebot2 项目创建独立的依赖环境,在不同的虚拟环境中安装不同版本的 numpy,使得各个项目的依赖能够互不干扰,确保每个插件和整个 Nonebot2 项目都能正常运行。也就是说在虚拟环境中下载的库只在这个环境中,环境一删,里面下的所有东西都没了,不会影响其他地方的程序。

9、选择内置插件

       就选择一个echo插件就行,这是个复读机插件,会复读一下你发的信息。内置插件是为了方便我们对机器人进行测试,看它是否在正常运行,等会安装好机器人要用它测试一下。(这里和适配器一样,要先使前面圆点饱满再回车,才算是选上)
nb

出现上面界面就说明创建成功,关闭命令操作符即可。

三、使用Lagrange协议端登录QQ

        机器人程序配置好了,那么怎么将你的QQ号登录到机器人上,进行绑定呢?用Lagrange,安装配置Lagrange的方法看这个博主的教程,讲的挺好的:https://blog.csdn.net/m0_66648798/article/details/141038846

四、运行机器人

        用Lagrange登上自己的QQ后,进入你机器人项目的文件夹,输入cmd进入命令提示符,输入nb run等一会儿就能运行了(注意:Lagrange和机器人运行窗口均不能关闭)
运行之后,可以利用安装的内置插件echo进行测试,看机器人运行是否正常。echo插件私聊中触发的默认文字格式是/echo 文本,而在群聊中的默认格式是/echo 文本@机器人。如下图:

私聊

私聊

群聊
群聊

五、补充(主要是某些文件夹的作用)

注意:我一开始创建的文件夹在C盘,命名为NoneBot2,项目名称叫George,我下面提到的路径请依照自己前面所填写的内容一一对应
1、以后自己开发的插件存放位置:C:\NoneBot2\George\src
2、在插件商店安装的插件所处位置C:\NoneBot2\George\.venv\Lib\site-packages(插件的文件名一般都是
以nonebot_plugin_开头)

六、结语

        以后会出服务器部署和安装官方插件商店中的插件的教程。然后请大家谨慎娱乐QQ机器人,此行为违反了《QQ 软件许可及服务协议》,腾讯检测到会封号,所以建议用小号运行机器人。不过这完全看脸,有的人玩了几年都不封,有的人刚装上第二天就被封了一次,比如我:封号斗罗

评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

-George-

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值