这是什么?
首先介绍一下,NoneBot2 是一个现代、跨平台、可扩展的 Python 聊天机器人框架(下称 NoneBot),它基于 Python 的类型注解和异步优先特性(兼容同步),能够为你的需求实现提供便捷灵活的支持。同时,NoneBot 拥有大量的开发者为其开发插件,用户无需编写任何代码,仅需完成环境配置及插件安装,就可以正常使用 NoneBot。(官网搬的原话,也是最贴切的介绍)
再说一下他的优势,兼容性广,nb可以对接藤子旗下开发的即时聊天软件(具体是什么我不说),也可以对接开黑啦、钉钉等语音频道和交互软件,可应用的领域广、实用性高。我们只需要在python中输入几行代码便可以安装使用。
顺便说一说缺点吧,nb需要有一定的编程基础,对小白不是很友好,如果你想开发插件,也需要一定的知识储备。
怎么安装?
本文可以简单介绍一下nb的部署步骤(因为nb的教程写了相当于没写,很乱,而且小白根本看不懂)
......
第一步:我们需要在python官网上下载一个正确的python版本,官网推荐是3.8及以上,我推荐使用3.10以上版本。python安装教程略,不懂的小白可以直接百度搜,就不用我再搬运一遍啦,记得安装的时候勾选add python.exe to path和取消Windows自身path限制。
第二步:如果你已经确保你安装了python之后,接下来就打开命令行,输入以下代码:
python -m pip install --user pipx
python -m pipx ensurepath
注:如果在此步骤的输出中出现了“open a new terminal”或者“re-login”字样,那么请关闭当前终端并重新打开一个新的终端。
以上代码执行完毕后,继续输入以下代码:
pipx install nb-cli
如果下载慢,可以更换国内源,这里推荐清华大学镜像源网站。
注:安装完成后,你可以在命令行使用 nb
命令来使用脚手架。如果出现无法找到命令的情况(例如出现“Command not found”字样),请参考 pipx 文档 检查你的环境变量。
第三步:在电脑上新建一个文件夹,注意不要使用中文目录,在文件目录上打开power shell,输入 nb
,可以看见有可选选项,我们选择创建一个项目,接着会有下一步选项,小白可以选择初学者选项。
第四步:为项目起一个英文名称,完成之后选择fastapi驱动器,再选择onebotv11,按Y安装依赖。依赖安装完成之后,继续按Y安装虚拟环境(如果正在使用coda的可以不用)。之后等待下载安装完成。
注:多选项使用空格选中或取消,回车确认。
第五步:提示你要选择的内置插件,我们可以选择echo插件,这是一个简易复读插件,可以测试机器人是否正常运行。完成之后,按照提示复制粘贴+回车输入三行代码,之后输入nb run,即可启动你的机器人。
注:如果出错,你应该用管理员启动power shell。ctrl+c可以终止当前的指令。
第六步:你会发现你创建的文件夹内多了一个以你的项目为名称命名的子文件夹,目录下都会有一个 .env.prod 配置文件,所有插件的变量名等都会在这个文件里定义,也包括NoneBot自带的一些变量。用记事本打开它,添加以下代码:
HOST=0.0.0.0
PORT=8080
SUPERUSERS=["111111111"] #引号里填自己的管理员qq
注:port端口可以自定义,如果你电脑配置了其他东西占用8080端口,你应该把他改成其他数字,10000-60000以内是比较好的数字。
第七步:输入nb,之后依次选择 Manage bot plugins --> Install nonebot plugin to current
project 并回车,再输入 nonebot_plugin_gocqhttp 插件名回车。安装完成gocq。
注:插件都可以用这样的方式安装。当然也可以用nb plugin install <plugin_name>安装。
第八步:nb run运行之后,你应该可以看到go-cqhttp监听了我们在 .env.prod 设置的端口。使用浏览器访问http://IP:36985/go-cqhttp/#/ (命令行后会提示网址)
进入网址后,左上角添加自己的bot账号,注意需要使用手表协议登录。之后在网址上启动服务,安装网址的提示进行下一步操作即可。
注:如果网址进不去,则需要手动把网址的0.0.0.0改成127.0.0.1登录时。默认选择方式1,如果选择2则需要手动抓取ticket。如果手表协议登录不了,请勿选择phone和pad协议,因为你需要配置本地前面服务器,这需要用到qsign和Java,会相当复杂,并且现在内存溢出问题还没有修复(bot接收的消息达到一定数量,占用的系统内存就上涨)。
......
可选项,不是一定要做的:
写SystemD服务:
为了方便管理 NoneBot2 服务,如果你觉得太麻烦也可以考虑使用 screen 或 nohup &。
Gentoo@root# vim /etc/systemd/system/nonebot.service
[Unit]
Description=Nonebot Daemon Service
After=network.target
[Service]
User=root
WorkingDirectory=/opt/test-bot
ExecStart=/root/.local/bin/nb run
ExecStop=/usr/bin/pkill -9 nb
[Install]
WantedBy=multi-user.target
写完服务后,重载systemd并启用开机自启动:
systemctl daemon-reload
systemctl enable --now nonebot.service
systemctl status nonebot
Rokas.Yang@gmail.com .service
注:此步骤会降低每次重启电脑打开nonebot的复杂性,但是会增加系统占用。
附录:
nb官方:NoneBot (baka.icu)
gocq官方文档:https://github.com/Mrs4s/go-cqhttp
Comments | 1 条评论
还是无法登录啊,显示要扫码