NoneBot2 是一个现代、跨平台、可扩展的 Python 聊天机器人框架,它基于 Python 的类型注解和异步特性,能够为你的需求实现提供便捷灵活的支持。然后剩下的详细说明建议自己去翻文档,我不多做赘述。
注意:NoneBot2 仅支持 Python 3.8 以上版本(推荐使用Python3.8.1)
我参考过的文档:摘录于Nonebot2官方文档 https://v2.nonebot.dev/
基于Nonebot2搭建QQ机器人(二)编写一个自动回复插件_会飞的 CR7的博客-CSDN博客_qq机器人自动回复
这个是我参考的一个别人的CSDN,但是他的内容版本有点旧,所以可能会让新手很多地方感到困扰
使用NoneBot2搭建QQ机器人 - 知乎
这个是一个大佬给的教程,我很多都是跟着他的教程学习的,另外我还加了他在的群。
这个是官方文档:
go-cqhttp官方文档https://docs.go-cqhttp.org/
下载go-cqhttp:Releases · Mrs4s/go-cqhttp · GitHub
在里面选择windows的最新版exe文件下载好。如果是32位的话就选择...386.exe
如果是linux和树莓派的话就选择amd64.tar.gz
下载好了会得到这样一个文件。
把这个文件放在你要放的文件夹下面,然后双击运行。
然后就得到了这样一个叫做go-cqhttp.bat的启动程序,之后把exe文件重新命名为go-cqhttp.exe。
通信协议的话我是跟着别的大佬用的反向通信协议(选3)
之后会得到这样一个文件,在pycharm中打开它,
这里面需要更改的有两处,QQ号填写自己要创建机器人的号,密码的话可以填写也可以不填扫码登录,
然后其中的这一行改成
ws://127.0.0.1:15687/onebot/v11/ws/
其中15687是端口号,可以随便设置,但是有范围限制,我个人推荐写一万两万之间的随机数,一定要是随机数。很多人喜欢写八千多或者一些整数,这样的话你的数字就容易和别人的数字重复导致端口冲突。所以我写了15687,你们就别写15687了最好。
这个东西的时候你就已经配置好go-cqhttp了。
注意:此后运行go-cqhttp就不要用exe文件了,要使用.bat文件。
我用的是Pycharm编译器,用的语言是Python3.1.0。至于如何下载Python以及其编译器建议通过百度解决。然后就是下载NoneBot2:
首先打开pycharm的终端:
也可以使用快捷键:Alt+F12
这就是打开后的模样
在里面输入: pip install nb-cli 接着等待下载完成。
那之后在
cqhttp在的位置鼠标右键,选择Open in Terminal 就可以打开Windows PowerShell
当然也可以在pycharm的终端里输入Windows PowerShall相同的指令。(注意要在和cqhttp相同的目录下。)
下载完成之后输入
nb install httpx
来安装驱动器
输入
nb create
之后会这样,然后再项目名称后面写上你想写的机器人项目的名称。
之后的选项里面依次选择"src"和"echo"和"OneBot V11"输入y回车完成创建。
然后再pyproject.toml所在的目录下的终端(Windows PowerShell)依次输入下面的指令
nb adapter OneBot V11
来安装协议适配器
输入
nb install plugin sentry
来安装第三方插件
都安装好了之后就算基础配置完了。
在里面输入一下代码:
# .env
ENVIRONMENT=dev
CUSTOM_CONFIG=common config # 这个配置项在任何环境中都会被加载
HOST=127.0.0.1 # 配置 NoneBot2 监听的 IP/主机名
PORT=15687 # 配置 NoneBot2 监听的端口
SUPERUSERS=["123456789", "987654321"] # 配置 NoneBot 超级用户,就是管理员QQ号
NICKNAME=["awesome", "bot"] # 配置机器人的昵称
COMMAND_START=["/", ""] # 配置命令起始字符,命令开始的标志
COMMAND_SEP=["."] # 配置命令分割字符
# Custom Configs
CUSTOM_CONFIG1="config in env file"
CUSTOM_CONFIG2= # 留空则从系统环境变量读取,如不存在则为空字符串
这个是我的
HOST=127.0.0.1
PORT=15687
SECRET=
ACCESS_TOKEN=
#!/usr/bin/env python3 # -*- coding: utf-8 -*- import nonebot from nonebot.adapters.onebot.v11 import Adapter as ONEBOT_V11Adapter # Custom your logger # # from nonebot.log import logger, default_format # logger.add("error.log", # rotation="00:00", # diagnose=False, # level="ERROR", # format=default_format) # You can pass some keyword args config to init function nonebot.init() app = nonebot.get_asgi() driver = nonebot.get_driver() driver.register_adapter(ONEBOT_V11Adapter) nonebot.load_builtin_plugins("echo") # Please DO NOT modify this file unless you know what you are doing! # As an alternative, you should use command `nb` or modify `pyproject.toml` to load plugins nonebot.load_from_toml("pyproject.toml") # Modify some config / config depends on loaded configs # # config = driver.config # do something... if __name__ == "__main__": nonebot.logger.warning("Always use `nb run` to start the bot instead of manually running!") nonebot.run(app="__mp_main__:app")
初学者,就先无脑copy这个代码就行了。
接下来就可以运行了。
pycharm运行bot.py,双击go-cqhttp.bat就成功了。
这个是我 copy基于Nonebot2搭建QQ机器人(一)机器人环境配置_会飞的CR7的博客-CSDN博客_nonebot2
这个大佬的代码时候遇到的问题,cqhttp那个是旧版的,新版的应该导入
nonebot.adapters.onebot.v11
的
Adapter
'No module named 'nonebot.adapters.onebot'报错
说明没有安装上适配器。
在此输入指令安装适配器时候却是这样的:
显示无法安装成功。
这个的原因是在其他的地址下已经安装有适配器了,但是这里调用不到。所以需要这样输入指令:
pip install --target=目标路径 工具包名字
选定机器人所在的路径,安装适配器就可以解决这个问题了。
还有一点很重要就是适配器一定要安装在和pyproject.toml相同的路径下。