浅尝 qqBot
使用的是 python3.12+nonebot2+Lagrange.OneBot 框架,实现了一个简单的 qqBot。
全手工配置
有用 uv 所以使用 nonebot2 的脚手架工具的话有点麻烦,需要嵌套一层 venv,而且不能使用nb pip ...所以就手动配置了。
- 首先要登录上 qq,这里用到的是Lagrange.OneBot_win-x64_net9.0_SelfContained.zip点击跳转到下载目录
- 解压后,在目录下找到
Lagrange.OneBot.exe执行,第一次执行后退出。 - 打开文件配置器按照需要进行配置,然后在目录下找到
appsettings.json文件,将里面的内容替换成文件配置器生成的配置。- 一般情况下只需要找到
二维码设定->控制台兼容模式将这设置打开,剩余的能看懂就改。
- 一般情况下只需要找到
- 执行
Lagrange.OneBot.exe,如果一切正常的话会显示一个二维码,使用手机 qq 扫描二维码登录即可。记得勾选下次登录无需确认 - 这样 QQ 就完成了登录配置。
接下来就是配置 nonebot2 了,我使用的是 uv 来进行管理的(不会 uv 的点击),所以步骤仅供参考。
-
找个合适的位置
uv init -p 3.12 -q -
安装 python
uv run main.py -
安装 nonebot2+驱动器
uv pip install nonebot2[fastapi],当然也可以选择其他驱动器具体看这里 -
安装适配器(OneBotV11)
uv pip install nonebot-adapter-onebot当然也可以选择其他驱动器具体看这里 -
配置项目文件,没有就手动创建,有就直接改
.env,添加以下内容
HOST=127.0.0.1 # 配置 NoneBot 监听的 IP / 主机名PORT=8080 # 配置 NoneBot 监听的端口COMMAND_START=["/"] # 配置命令起始字符COMMAND_SEP=["."] # 配置命令分割字符.env.dev,添加以下内容
LOG_LEVEL=DEBUG.env.prod,添加以下内容
LOG_LEVEL=INFOpyproject.toml,添加以下内容
[project]name = "qqbot"version = "0.1.0"description = "qqbot"readme = "README.md"requires-python = "<4.0,>=3.9"dependencies = [][tool.nonebot]adapters = [{ name = "OneBot V11", module_name = "nonebot.adapters.onebot.v11" },]plugins = []plugin_dirs = ["src"]builtin_plugins = ["echo"]uv.lock添加以下内容
version = 1 revision = 3 requires-python = ">=3.9, <4.0"[options] prerelease-mode = "if-necessary"[[package]] name = "qqbot" version = "0.1.0" source = { virtual = "." }
Tree
│ .env # 主配置文件
│ .env.dev # 开发环境配置文件
│ .env.prod # 生产环境配置文件
│ .gitignore # git忽略文件
│ .python-version # python版本
│ bot.py # 主程序
│ main.py # 启动文件
│ pyproject.toml # 项目配置文件
│ README.md # 项目说明文件
│ uv.lock # uv配置文件
│
├─Lagrange.OneBot # Lagrange.OneBot目录
│ └─bin
│ └─Release
│ └─net9.0
│ └─win-x64
│ └─publish
│ │ appsettings.json # Lagrange.OneBot配置文件
│ │ device.json # 设备信息
│ │ keystore.json # 密钥信息
│ │ Lagrange.OneBot.exe # Lagrange.OneBot可执行文件
│ │ qr-0.png
│ │
│ └─lagrange-0-db
└─src # 插件存放位置└─ plugintest.py # 插件测试文件
