Raspberry Pi 3B 安装NoneBot2
Raspberry Pi 3B 安裝NoneBot2
- 查看系統(tǒng)信息
- 下載 go-cqhttp release文件
- 解壓并運行
- 修改 config.yml 配置文件
- 安裝 nonebot2
- 需要解決的問題
- 安裝pip
- 安裝 Miniconda:
- Windows 10安裝 NoneBot2
組件:
- Raspberry Pi 3B 1G
環(huán)境:
- Linux raspbian:5.4.83
- 指令集:aarch64
- Miniconda:4.9.2
- Python:3.9.1
- go-cqhttp:v1.0.0-beta6
查看系統(tǒng)信息
uname -a(base) pi@raspbian:~/Software$ uname -a
Linux raspbian 5.4.83-OPENFANS+20210102-v8 #1 SMP Sat Jan 2 21:52:54 CST 2021 aarch64 GNU/Linux
aarch64 為當(dāng)前Linux支持的架構(gòu)
下載 go-cqhttp release文件
go-cqhttp release文件下載: https://github.com/Mrs4s/go-cqhttp/releases/
根據(jù)網(wǎng)址找到對應(yīng)版本壓縮包.zip 或 .tar.gz進(jìn)行下載。
wget https://github.com/Mrs4s/go-cqhttp/releases/download/v1.0.0-beta6/go-cqhttp_linux_armv7.tar.gz(base) pi@raspbian:~/Software$ wget https://github.com/Mrs4s/go-cqhttp/releases/download/v1.0.0-beta6/go-cqhttp_linux_armv7.tar.gz
–2021-09-01 19:00:53-- https://github.com/Mrs4s/go-cqhttp/releases/download/v1.0.0-beta6/go-cqhttp_linux_armv7.tar.gz
Resolving github.com (github.com)… 52.74.223.119
Connecting to github.com (github.com)|52.74.223.119|:443… connected.
HTTP request sent, awaiting response… 302 Found
Location: https://github-releases.githubusercontent.com/281694167/2a74b8a4-4ed0-4e7e-987b-af534573105a?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAIWNJYAX4CSVEH53A%2F20210901%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20210901T110054Z&X-Amz-Expires=300&X-Amz-Signature=dabfc09a5a367b765f3410fede537811d0670899d944a3d1cb9adb8284c4c622&X-Amz-SignedHeaders=host&actor_id=0&key_id=0&repo_id=281694167&response-content-disposition=attachment%3B%20filename%3Dgo-cqhttp_linux_armv7.tar.gz&response-content-type=application%2Foctet-stream [following]
–2021-09-01 19:00:54-- https://github-releases.githubusercontent.com/281694167/2a74b8a4-4ed0-4e7e-987b-af534573105a?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAIWNJYAX4CSVEH53A%2F20210901%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20210901T110054Z&X-Amz-Expires=300&X-Amz-Signature=dabfc09a5a367b765f3410fede537811d0670899d944a3d1cb9adb8284c4c622&X-Amz-SignedHeaders=host&actor_id=0&key_id=0&repo_id=281694167&response-content-disposition=attachment%3B%20filename%3Dgo-cqhttp_linux_armv7.tar.gz&response-content-type=application%2Foctet-stream
Resolving github-releases.githubusercontent.com (github-releases.githubusercontent.com)… 185.199.109.154, 185.199.108.154, 185.199.111.154, …
Connecting to github-releases.githubusercontent.com (github-releases.githubusercontent.com)|185.199.109.154|:443… connected.
HTTP request sent, awaiting response… 200 OK
Length: 6013451 (5.7M) [application/octet-stream]
Saving to: ‘go-cqhttp_linux_armv7.tar.gz’
go-cqhttp_linux_armv7.tar. 100%[=======================================>] 5.73M 1.42MB/s in 4.1s
2021-09-01 19:00:59 (1.39 MB/s) - ‘go-cqhttp_linux_armv7.tar.gz’ saved [6013451/6013451]
注:因為在官方的版本中沒有 aarch64 所以我選擇了 armv7 進(jìn)行安裝
解壓并運行
pi@raspbian:~/Software/go_cqhttp$ ls
go-cqhttp_linux_armv7.tar.gz
解壓
tar -zxvf go-cqhttp_linux_armv7.tar.gzpi@raspbian:~/Software/go_cqhttp$ tar -zxvf go-cqhttp_linux_armv7.tar.gz
LICENSE
README.md
go-cqhttp
第一次運行 go-cqhttp,需要生成 config.yml 配置文件進(jìn)行加載
./go-cqhttp faststartpi@raspbian:~/Software/go_cqhttp$ ./go-cqhttp faststart
未找到配置文件,正在為您生成配置文件中!
請選擇你需要的通信方式:
1: HTTP通信
2: 正向 Websocket 通信
3: 反向 Websocket 通信
4: pprof 性能分析服務(wù)器
5: 云函數(shù)服務(wù)
請輸入你需要的編號,可輸入多個,同一編號也可輸入多個(如: 233)
您的選擇是:13
默認(rèn)配置文件已生成,請修改 config.yml 后重新啟動!
到這里已經(jīng)生成了config.yml配置文件, 我選擇了HTTP通信和反向WebSocket一般情況搭配nonebot2使用只需要開啟反向WebSocket。
修改 config.yml 配置文件
vim config.yml # go-cqhttp 默認(rèn)配置文件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ā)的新地址進(jìn)行重連# 注意, 此設(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)試模式# 默認(rèn)中間件錨點 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 表示不限制隊列大小,謹(jǐn)慎使用max-queue-size: 2000middlewares:<<: *default # 引用默認(rèn)中間件# 反向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 # 引用默認(rèn)中間件- 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
以上5處修改完畢,便可以運行g(shù)o-cqhttp。
啟動 go-cqhttp
./go-cqhttp faststartpi@raspbian:~/Software/go_cqhttp$ ./go-cqhttp faststart
[2021-09-01 11:56:18] [INFO]: 當(dāng)前版本:v1.0.0-beta6
[2021-09-01 11:56:18] [WARNING]: 虛擬設(shè)備信息不存在, 將自動生成隨機設(shè)備.
[2021-09-01 11:56:18] [INFO]: 已生成設(shè)備信息并保存到 device.json 文件.
[2021-09-01 11:56:18] [INFO]: 開始嘗試登錄并同步消息…
[2021-09-01 11:56:18] [INFO]: 使用協(xié)議: iPad
[2021-09-01 11:56:19] [INFO]: Protocol -> connect to server: 120.232.18.55:8080
[2021-09-01 11:56:20] [INFO]: 登錄成功 歡迎使用: 喑?沫
[2021-09-01 11:56:20] [INFO]: 開始加載好友列表…
[2021-09-01 11:56:20] [INFO]: 共加載 1 個好友.
[2021-09-01 11:56:20] [INFO]: 開始加載群列表…
[2021-09-01 11:56:20] [INFO]: 共加載 1 個群.
[2021-09-01 11:56:20] [INFO]: 信息數(shù)據(jù)庫初始化完成.
[2021-09-01 11:56:20] [INFO]: 資源初始化完成, 開始處理信息.
[2021-09-01 11:56:20] [INFO]: 開始嘗試連接到反向WebSocket Universal服務(wù)器: ws://127.0.0.1:8765/cqhttp/ws
[2021-09-01 11:56:20] [INFO]: アトリは、高性能ですから!
[2021-09-01 11:56:20] [INFO]: CQ HTTP 服務(wù)器已啟動: 127.0.0.1:5700
[2021-09-01 11:56:20] [INFO]: 正在檢查更新.
[2021-09-01 11:56:20] [WARNING]: 連接到反向WebSocket Universal服務(wù)器 ws://127.0.0.1:8765/cqhttp/ws 時出現(xiàn)錯誤: dial tcp 127.0.0.1:8765: connect: connection refused
[2021-09-01 11:56:21] [WARNING]: 檢查更新失敗!
[2021-09-01 11:56:21] [INFO]: 檢查更新完成. 當(dāng)前已運行最新版本.
[2021-09-01 11:56:22] [INFO]: 收到服務(wù)器地址更新通知, 將在下一次重連時應(yīng)用.
這里go-cqhttp啟動完成。
安裝 nonebot2
(推薦)nb-cli 為腳手架,能快速為我們構(gòu)建 nonebot2 項目
pip install -i https://pypi.doubanio.com/simple nb-cli或
pip install -i https://pypi.doubanio.com/simple nonebot2安裝 nb-cli 為腳手架 后生成 bot 項目
(base) pi@raspbian:~/Software$ nb
# Create a New Project
# Project Name: vvcat_bot
# Where to store the plugin? In a “src” folder
# Load NoneBot Builtin Plugin? (y/N) n
# Which adapter(s) would you like to use? cqhttp
adapter 選擇 cqhttp
選擇結(jié)束以后,會自動生一個 vvcat_bot 項目
以下為生成的項目結(jié)構(gòu)
(base) pi@raspbian:~/Software/vvcat_bot$ tree
.
├── bot.py
├── docker-compose.yml
├── Dockerfile
├── pyproject.toml
├── README.md
└── src
└── plugins
env.dev文件中的 PORT參數(shù)需要修改為8765,要與 go-cqhttp配置文件中給出的反向代理地址的端口一致,也可以根據(jù)自己的需求,改成自己需要的端口,在修改端口的同時也要連同 go-cqhttp目錄下config.yml 文件中的反向代理端口一起修改。
(base) pi@raspbian:~/Software/vvcat_bot$ ls -a . bot.py Dockerfile .env.dev .gitignore README.md .. docker-compose.yml .env .env.prod pyproject.toml src修改 env.dev 文件的PORT參數(shù)
vim .env.dev到此就可以正式運行了
運行前需要先安裝好 cqhttp adapter
nb adapter install cqhttp也請確保 go-cqhttp 也正處于運行狀態(tài) 可以新打開一個終端啟動剛生成的項目
python bot.py 05-28 00:33:43 [INFO] nonebot | NoneBot is initializing... 05-28 00:33:43 [INFO] nonebot | Current Env: dev 05-28 00:33:43 [DEBUG] nonebot | Loaded Config: {'driver': 'nonebot.drivers.fastapi', 'host': IPv4Address('127.0.0.1'), 'port': 8765, 'debug': True, 'api_root': {}, 'api_timeout': 30.0, 'access_token': None, 'secret': None, 'superusers': set(), 'nickname': set(), 'command_start': {'/'}, 'command_sep': {'.'}, 'session_expire_timeout': datetime.timedelta(seconds=120), 'environment': 'dev'} 05-28 00:33:43 [DEBUG] nonebot | Succeeded to load adapter "cqhttp" 05-28 00:33:43 [WARNING] __main__ | Always use `nb run` to start the bot instead of manually running! 05-28 00:33:43 [INFO] nonebot | Running NoneBot... 05-28 00:33:43 [DEBUG] nonebot | Loaded adapters: cqhttp 05-28 00:33:43 [INFO] uvicorn | Uvicorn running on http://127.0.0.1:8765 (Press CTRL+C to quit) 05-28 00:33:43 [INFO] uvicorn | Started reloader process [1165] using watchgod 05-28 00:33:43 [INFO] nonebot | NoneBot is initializing... 05-28 00:33:43 [INFO] nonebot | Current Env: dev 05-28 00:33:43 [DEBUG] nonebot | Loaded Config: {'driver': 'nonebot.drivers.fastapi', 'host': IPv4Address('127.0.0.1'), 'port': 8765, 'debug': True, 'api_root': {}, 'api_timeout': 30.0, 'access_token': None, 'secret': None, 'superusers': set(), 'nickname': set(), 'command_start': {'/'}, 'command_sep': {'.'}, 'session_expire_timeout': datetime.timedelta(seconds=120), 'environment': 'dev'} 05-28 00:33:43 [DEBUG] nonebot | Succeeded to load adapter "cqhttp" 05-28 00:33:44 [INFO] uvicorn | Started server process [1168] 05-28 00:33:44 [INFO] uvicorn | Waiting for application startup. 05-28 00:33:44 [INFO] uvicorn | Application startup complete. 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!一旦新的配置文件正確生效之后,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)在,通過QQ嘗試向你的機器人賬號發(fā)送如下內(nèi)容:
在 go-cqhttp 啟動的服務(wù)中接收到的信息如下:
[2021-09-01 18:48:33] [INFO]: 收到好友 ???🅥🅥???????(xxxxxxxxx) 的消息: 你好 (xxxxxxxxx)
在我們項目機器人服務(wù)中接收到的信息如下:
09-01 18:48:33 [SUCCESS] nonebot | CQHTTP xxxxxxxxxx | [message.private.friend]: Message xxxxxxxxx from xxxxxxxxx “你好”
NoneBot2啟動完成,剩下的可以自己來開發(fā)了。
需要解決的問題
安裝pip
curl https://bootstrap.pypa.io/get-pip.py -o get-pip.pypi@raspbian:~/Software/go_cqhttp$ curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 1911k 100 1911k 0 0 1709k 0 0:00:01 0:00:01 --:–:-- 1711k
pi@raspbian:~/Software/go_cqhttp$ sudo python3 get-pip.py
Collecting pip
Downloading pip-21.2.4-py3-none-any.whl (1.6 MB)
|████████████████████████████████| 1.6 MB 752 kB/s
Collecting setuptools
Downloading setuptools-57.4.0-py3-none-any.whl (819 kB)
|████████████████████████████████| 819 kB 4.1 MB/s
Collecting wheel
Downloading wheel-0.37.0-py2.py3-none-any.whl (35 kB)
Installing collected packages: wheel, setuptools, pip
Successfully installed pip-21.2.4 setuptools-57.4.0 wheel-0.37.0
WARNING: Running pip as the ‘root’ user can result in broken permissions and conflicting behaviour with the system package manager. It is recommended to use a virtual environment instead: https://pip.pypa.io/warnings/venv
安裝 Miniconda:
Raspberry Pi 3B 安裝Miniconda:https://blog.csdn.net/qq_44989881/article/details/120030234
Windows 10安裝 NoneBot2
請參考我的另一篇文章:https://blog.csdn.net/qq_44989881/article/details/119381632
總結(jié)
以上是生活随笔為你收集整理的Raspberry Pi 3B 安装NoneBot2的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Raspberry Pi 3B 安装Mi
- 下一篇: Raspberry Pi 4B 安装 P