Raspberry Pi 3B 安装NoneBot2
Raspberry Pi 3B 安裝NoneBot2
- 查看系統信息
- 下載 go-cqhttp release文件
- 解壓并運行
- 修改 config.yml 配置文件
- 安裝 nonebot2
- 需要解決的問題
- 安裝pip
- 安裝 Miniconda:
- Windows 10安裝 NoneBot2
組件:
- Raspberry Pi 3B 1G
環境:
- Linux raspbian:5.4.83
- 指令集:aarch64
- Miniconda:4.9.2
- Python:3.9.1
- go-cqhttp:v1.0.0-beta6
查看系統信息
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 為當前Linux支持的架構
下載 go-cqhttp release文件
go-cqhttp release文件下載: https://github.com/Mrs4s/go-cqhttp/releases/
根據網址找到對應版本壓縮包.zip 或 .tar.gz進行下載。
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 進行安裝
解壓并運行
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 配置文件進行加載
./go-cqhttp faststartpi@raspbian:~/Software/go_cqhttp$ ./go-cqhttp faststart
未找到配置文件,正在為您生成配置文件中!
請選擇你需要的通信方式:
1: HTTP通信
2: 正向 Websocket 通信
3: 反向 Websocket 通信
4: pprof 性能分析服務器
5: 云函數服務
請輸入你需要的編號,可輸入多個,同一編號也可輸入多個(如: 233)
您的選擇是:13
默認配置文件已生成,請修改 config.yml 后重新啟動!
到這里已經生成了config.yml配置文件, 我選擇了HTTP通信和反向WebSocket一般情況搭配nonebot2使用只需要開啟反向WebSocket。
修改 config.yml 配置文件
vim config.yml # go-cqhttp 默認配置文件account: # 賬號相關uin: 12345 # QQ賬號password: 'xxxx' # 密碼為空時使用掃碼登錄encrypt: false # 是否開啟密碼加密status: 0 # 在線狀態 請參考 https://docs.go-cqhttp.org/guide/config.html#在線狀態relogin: # 重連設置delay: 3 # 首次重連延遲, 單位秒interval: 3 # 重連間隔max-times: 0 # 最大重連次數, 0為無限制# 是否使用服務器下發的新地址進行重連# 注意, 此設置可能導致在海外服務器上連接情況更差use-sso-address: trueheartbeat:# 心跳頻率, 單位秒# -1 為關閉心跳interval: 5message:# 上報數據類型# 可選: string,arraypost-format: string# 是否忽略無效的CQ碼, 如果為假將原樣發送ignore-invalid-cqcode: false# 是否強制分片發送消息# 分片發送將會帶來更快的速度# 但是兼容性會有些問題force-fragment: false# 是否將url分片發送fix-url: false# 下載圖片等請求網絡代理proxy-rewrite: ''# 是否上報自身消息report-self-message: false# 移除服務端的Reply附帶的Atremove-reply-at: false# 為Reply附加更多信息extra-reply-data: false# 跳過 Mime 掃描, 忽略錯誤數據skip-mime-scan: falseoutput:# 日志等級 trace,debug,info,warn,errorlog-level: warn# 日志時效 單位天. 超過這個時間之前的日志將會被自動刪除. 設置為 0 表示永久保留.log-aging: 15# 是否在每次啟動時強制創建全新的文件儲存日志. 為 false 的情況下將會在上次啟動時創建的日志文件續寫log-force-new: true# 是否啟用 DEBUGdebug: false # 開啟調試模式# 默認中間件錨點 default-middlewares: &default# 訪問密鑰, 強烈推薦在公網的服務器設置access-token: ''# 事件過濾器文件目錄filter: ''# API限速設置# 該設置為全局生效# 原 cqhttp 雖然啟用了 rate_limit 后綴, 但是基本沒插件適配# 目前該限速設置為令牌桶算法, 請參考:# 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 # 令牌回復頻率, 單位秒bucket: 1 # 令牌桶大小database: # 數據庫相關設置leveldb:# 是否啟用內置leveldb數據庫# 啟用將會增加10-20MB的內存占用和一定的磁盤空間# 關閉將無法使用 撤回 回復 get_msg 等上下文相關功能enable: true# 連接服務列表 servers:# 添加方式,同一連接方式可添加多個,具體配置說明請查看文檔#- http: # http 通信#- ws: # 正向 Websocket#- ws-reverse: # 反向 Websocket#- pprof: #性能分析服務器# HTTP 通信設置- http:# 服務端監聽地址host: 127.0.0.1# 服務端監聽端口port: 5700# 反向HTTP超時時間, 單位秒# 最小值為5,小于5將會忽略本項設置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設置- ws-reverse:# 反向WS Universal 地址# 注意 設置了此項地址后下面兩項將會被忽略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
以上5處修改完畢,便可以運行go-cqhttp。
啟動 go-cqhttp
./go-cqhttp faststartpi@raspbian:~/Software/go_cqhttp$ ./go-cqhttp faststart
[2021-09-01 11:56:18] [INFO]: 當前版本:v1.0.0-beta6
[2021-09-01 11:56:18] [WARNING]: 虛擬設備信息不存在, 將自動生成隨機設備.
[2021-09-01 11:56:18] [INFO]: 已生成設備信息并保存到 device.json 文件.
[2021-09-01 11:56:18] [INFO]: 開始嘗試登錄并同步消息…
[2021-09-01 11:56:18] [INFO]: 使用協議: 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]: 信息數據庫初始化完成.
[2021-09-01 11:56:20] [INFO]: 資源初始化完成, 開始處理信息.
[2021-09-01 11:56:20] [INFO]: 開始嘗試連接到反向WebSocket Universal服務器: ws://127.0.0.1:8765/cqhttp/ws
[2021-09-01 11:56:20] [INFO]: アトリは、高性能ですから!
[2021-09-01 11:56:20] [INFO]: CQ HTTP 服務器已啟動: 127.0.0.1:5700
[2021-09-01 11:56:20] [INFO]: 正在檢查更新.
[2021-09-01 11:56:20] [WARNING]: 連接到反向WebSocket Universal服務器 ws://127.0.0.1:8765/cqhttp/ws 時出現錯誤: dial tcp 127.0.0.1:8765: connect: connection refused
[2021-09-01 11:56:21] [WARNING]: 檢查更新失敗!
[2021-09-01 11:56:21] [INFO]: 檢查更新完成. 當前已運行最新版本.
[2021-09-01 11:56:22] [INFO]: 收到服務器地址更新通知, 將在下一次重連時應用.
這里go-cqhttp啟動完成。
安裝 nonebot2
(推薦)nb-cli 為腳手架,能快速為我們構建 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
選擇結束以后,會自動生一個 vvcat_bot 項目
以下為生成的項目結構
(base) pi@raspbian:~/Software/vvcat_bot$ tree
.
├── bot.py
├── docker-compose.yml
├── Dockerfile
├── pyproject.toml
├── README.md
└── src
└── plugins
env.dev文件中的 PORT參數需要修改為8765,要與 go-cqhttp配置文件中給出的反向代理地址的端口一致,也可以根據自己的需求,改成自己需要的端口,在修改端口的同時也要連同 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參數
vim .env.dev到此就可以正式運行了
運行前需要先安裝好 cqhttp adapter
nb adapter install cqhttp也請確保 go-cqhttp 也正處于運行狀態 可以新打開一個終端啟動剛生成的項目
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 所在的控制臺(如果正在運行的話)應該會輸出類似下面的內容(兩條訪問日志):
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 協議端已經成功地使用 CQHTTP 協議連接上了 NoneBot。
現在,通過QQ嘗試向你的機器人賬號發送如下內容:
在 go-cqhttp 啟動的服務中接收到的信息如下:
[2021-09-01 18:48:33] [INFO]: 收到好友 ???🅥🅥???????(xxxxxxxxx) 的消息: 你好 (xxxxxxxxx)
在我們項目機器人服務中接收到的信息如下:
09-01 18:48:33 [SUCCESS] nonebot | CQHTTP xxxxxxxxxx | [message.private.friend]: Message xxxxxxxxx from xxxxxxxxx “你好”
NoneBot2啟動完成,剩下的可以自己來開發了。
需要解決的問題
安裝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
總結
以上是生活随笔為你收集整理的Raspberry Pi 3B 安装NoneBot2的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Raspberry Pi 3B 安装Mi
- 下一篇: Linux开发 python引用自定义的