Windows 安装 NoneBot2
使用環(huán)境:Python 3.7.10
NoneBot2 官方參考文檔:https://v2.nonebot.dev/
NoneBot 僅支持 Python 3.7+
推薦安裝一個 Python 3.7+的版本,否則會安裝第三方庫時會報錯。
通過腳手架安裝
pip install nb-cli創(chuàng)建一個完整的項目
可以使用 nb-cli 或者自行創(chuàng)建完整的項目目錄:
nb create- Project Name: 項目名稱
- Where to store the Plugin:可選擇src目錄下
- which adapter(s) would you like to use? :選擇 cqhttp (空格可以確認選擇,選擇完按回車,鍵盤方向鍵控制上下)
- src/plugins: 用于存放編寫的 bot 插件
- env, .env.dev, .env.prod: 各環(huán)境配置文件
- bot.py: bot 入口文件
- pyproject.toml: 項目依賴管理文件,默認使用 poetry
啟動 Bot
python bot.py安裝 NoneBot CQHTTP 適配器
pip install nonebot-adapter-cqhttp配置 CQHTTP 協(xié)議端
下載 go-cqhttp 對應(yīng)平臺的 release 文件:https://github.com/Mrs4s/go-cqhttp/releases
選擇 go-cqhttp_windows_amd64.zip下載進行解壓
運行 exe 文件
生成默認配置文件并修改默認配置
修改 config.yml 配置文件
# go-cqhttp 默認配置文件account: # 賬號相關(guān)uin: 12345 # QQ賬號password: 'xxxx' # 密碼為空時使用掃碼登錄encrypt: false # 是否開啟密碼加密status: 0 # 在線狀態(tài) 請參考 https://docs.go-cqhttp.org/guide/config.html#在線狀態(tài)relogin: # 重連設(shè)置delay: 3 # 首次重連延遲, 單位秒interval: 3 # 重連間隔max-times: 0 # 最大重連次數(shù), 0為無限制# 是否使用服務(wù)器下發(fā)的新地址進行重連# 注意, 此設(shè)置可能導(dǎo)致在海外服務(wù)器上連接情況更差use-sso-address: trueheartbeat:# 心跳頻率, 單位秒# -1 為關(guān)閉心跳interval: 5message:# 上報數(shù)據(jù)類型# 可選: string,arraypost-format: string# 是否忽略無效的CQ碼, 如果為假將原樣發(fā)送ignore-invalid-cqcode: false# 是否強制分片發(fā)送消息# 分片發(fā)送將會帶來更快的速度# 但是兼容性會有些問題force-fragment: false# 是否將url分片發(fā)送fix-url: false# 下載圖片等請求網(wǎng)絡(luò)代理proxy-rewrite: ''# 是否上報自身消息report-self-message: false# 移除服務(wù)端的Reply附帶的Atremove-reply-at: false# 為Reply附加更多信息extra-reply-data: false# 跳過 Mime 掃描, 忽略錯誤數(shù)據(jù)skip-mime-scan: falseoutput:# 日志等級 trace,debug,info,warn,errorlog-level: warn# 日志時效 單位天. 超過這個時間之前的日志將會被自動刪除. 設(shè)置為 0 表示永久保留.log-aging: 15# 是否在每次啟動時強制創(chuàng)建全新的文件儲存日志. 為 false 的情況下將會在上次啟動時創(chuàng)建的日志文件續(xù)寫log-force-new: true# 是否啟用 DEBUGdebug: false # 開啟調(diào)試模式# 默認中間件錨點 default-middlewares: &default# 訪問密鑰, 強烈推薦在公網(wǎng)的服務(wù)器設(shè)置access-token: ''# 事件過濾器文件目錄filter: ''# API限速設(shè)置# 該設(shè)置為全局生效# 原 cqhttp 雖然啟用了 rate_limit 后綴, 但是基本沒插件適配# 目前該限速設(shè)置為令牌桶算法, 請參考:# https://baike.baidu.com/item/%E4%BB%A4%E7%89%8C%E6%A1%B6%E7%AE%97%E6%B3%95/6597000?fr=aladdinrate-limit:enabled: false # 是否啟用限速frequency: 1 # 令牌回復(fù)頻率, 單位秒bucket: 1 # 令牌桶大小database: # 數(shù)據(jù)庫相關(guān)設(shè)置leveldb:# 是否啟用內(nèi)置leveldb數(shù)據(jù)庫# 啟用將會增加10-20MB的內(nèi)存占用和一定的磁盤空間# 關(guān)閉將無法使用 撤回 回復(fù) get_msg 等上下文相關(guān)功能enable: true# 連接服務(wù)列表 servers:# 添加方式,同一連接方式可添加多個,具體配置說明請查看文檔#- http: # http 通信#- ws: # 正向 Websocket#- ws-reverse: # 反向 Websocket#- pprof: #性能分析服務(wù)器# HTTP 通信設(shè)置- http:# 服務(wù)端監(jiān)聽地址host: 127.0.0.1# 服務(wù)端監(jiān)聽端口port: 5700# 反向HTTP超時時間, 單位秒# 最小值為5,小于5將會忽略本項設(shè)置timeout: 5# 長輪詢拓展long-polling:# 是否開啟enabled: false# 消息隊列大小,0 表示不限制隊列大小,謹慎使用max-queue-size: 2000middlewares:<<: *default # 引用默認中間件# 反向HTTP POST地址列表post:#- url: '' # 地址# secret: '' # 密鑰#- url: 127.0.0.1:5701 # 地址# secret: '' # 密鑰# 反向WS設(shè)置- ws-reverse:# 反向WS Universal 地址# 注意 設(shè)置了此項地址后下面兩項將會被忽略universal: ws://127.0.0.1:8765/cqhttp/ws# 反向WS API 地址api: ws://127.0.0.1:8765/cqhttp/api# 反向WS Event 地址event: ws://127.0.0.1:8765/cqhttp/event# 重連間隔 單位毫秒reconnect-interval: 3000middlewares:<<: *default # 引用默認中間件- uid: 改成QQ號
- password: 改成密碼
- ws://your_websocket_universal.server: 改成 ws://127.0.0.1:8765/cqhttp/ws
- ws://your_websocket_api.server 改成 ws://127.0.0.1:8765/cqhttp/api
- ws://your_websocket_event.server 改成 ws://127.0.0.1:8765/cqhttp/event
啟動 go-cqhttp
運行 go-cqhttp.exe 文件
[2021-05-27 23:51:53] [INFO]: 當前版本:v1.0.0-beta4 [2021-05-27 23:51:53] [INFO]: 用戶交流群: 721829413 [2021-05-27 23:51:53] [WARNING]: 虛擬設(shè)備信息不存在, 將自動生成隨機設(shè)備. [2021-05-27 23:51:53] [INFO]: 已生成設(shè)備信息并保存到 device.json 文件. [2021-05-27 23:51:53] [INFO]: 開始嘗試登錄并同步消息... [2021-05-27 23:51:53] [INFO]: 使用協(xié)議: iPad [2021-05-27 23:51:54] [INFO]: Protocol -> connect to server: 113.96.13.95:8080 [2021-05-27 23:51:58] [INFO]: 收到服務(wù)器地址更新通知, 將在下一次重連時應(yīng)用. [2021-05-27 23:51:58] [INFO]: 登錄成功 歡迎使用: 雨 [2021-05-27 23:51:58] [INFO]: 開始加載好友列表... [2021-05-27 23:51:58] [INFO]: 共加載 1 個好友. [2021-05-27 23:51:58] [INFO]: 開始加載群列表... [2021-05-27 23:52:00] [INFO]: 共加載 20 個群. [2021-05-27 23:52:00] [INFO]: 信息數(shù)據(jù)庫初始化完成. [2021-05-27 23:52:00] [INFO]: 正在加載事件過濾器. [2021-05-27 23:52:00] [INFO]: 資源初始化完成, 開始處理信息. [2021-05-27 23:52:00] [INFO]: アトリは、高性能ですから! [2021-05-27 23:52:00] [INFO]: CQ HTTP 服務(wù)器已啟動: 127.0.0.1:5700 [2021-05-27 23:52:00] [INFO]: 正在檢查更新. [2021-05-27 23:52:00] [INFO]: 開始嘗試連接到反向WebSocket Universal服務(wù)器: ws://127.0.0.1:8765/cqhttp/ws [2021-05-27 23:52:00] [WARNING]: 連接到反向WebSocket Universal服務(wù)器 ws://127.0.0.1:8765/cqhttp/ws 時出現(xiàn)錯誤: dial tcp 127.0.0.1:8765: connect: connection refused機器人項目生成好了, 下面是目錄結(jié)構(gòu)
lin ├── Dockerfile ├── .env.dev ├── .env.prod ├── README.md ├── bot.py ├── docker-compose.yml ├── pyproject.toml └── src└── pluginsenv.dev 文件中的 PORT參數(shù)需要修改為8765,要與 go-cqhttp配置文件中給出的反向代理地址的端口一致,也可以根據(jù)自己的需求,改成自己需要的端口,在修改端口的同時也要連同 go-cqhttp目錄下config.yml 文件中的反向代理端口一起修改。
到此就可以正式運行了
一旦新的配置文件正確生效之后,NoneBot 所在的控制臺(如果正在運行的話)應(yīng)該會輸出類似下面的內(nèi)容(兩條訪問日志):
05-28 00:33:44 [INFO] uvicorn | ('127.0.0.1', 14601) - "WebSocket /cqhttp/ws" [accepted] 05-28 00:33:44 [INFO] nonebot | WebSocket Connection from CQHTTP Bot ****** Accepted!這表示 CQHTTP 協(xié)議端已經(jīng)成功地使用 CQHTTP 協(xié)議連接上了 NoneBot。
現(xiàn)在,嘗試向你的機器人賬號發(fā)送如下內(nèi)容:
NoneBot2啟動完成,剩下的可以自己來開發(fā)了。
總結(jié)
以上是生活随笔為你收集整理的Windows 安装 NoneBot2的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 使用 NCS2 异步推理——人脸识别
- 下一篇: NoneBot2插件——打印系统状态