0%

近期开发时遇到的一些问题

这几周遇到的问题和解决思路整合

把nonebot2从alpha版本升级到了beta版本,历经了巨大的更新折磨。再次无限感谢nonebot群里群友准备的升级改动汇总,还有我们的各位大佬群友的帮助。在本次更新正式结束后,将慢慢总结遇到的问题。

Q1、pypi的源地址

临时使用(换源都懂,但是有时候国内源更新的太慢,必须用官方源才行)

1
2
3
4
5
pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple/    #清华
pip3 install -i http://mirrors.aliyun.com/pypi/simple/ #阿里源
pip3 install -i https://pypi.mirrors.ustc.edu.cn/simple/ #中科大
pip3 install -i http://pypi.douban.com/simple/ #豆瓣
pip3 install -i https://pypi.python.org/simple/ #pypi

永久换源

Q2、枫酱的聊天黑名单功能

嗯,因为有人不懂规矩,喜欢和枫酱聊一些不合适的内容,所以加了这个功能,开源一下。

1
2
3
4
5
from .blacklistsss import blacklist
msg = msg[2:] #beta版本的特性~
for each in blacklist:
if each in msg:
await maplechat.finish("请勿输入以上内容!!!")

聊天插件并不复杂,也开源一波

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
from nonebot import on_command
from nonebot.rule import to_me
from nonebot.typing import T_State
from nonebot.params import State
from nonebot.adapters import Bot, Event
from nonebot.permission import SUPERUSER

from .blacklistsss import blacklist
import json

from tencentcloud.common import credential
from tencentcloud.common.profile.client_profile import ClientProfile
from tencentcloud.common.profile.http_profile import HttpProfile
from tencentcloud.common.exception.tencent_cloud_sdk_exception import TencentCloudSDKException
from tencentcloud.nlp.v20190408 import nlp_client, models

__plugin_name__ = 'chat'
__plugin_usage__ = '用法:通过腾讯云的接口与枫酱聊天哦~'

# on_command()为针对命令型事件的响应,即以配置的命令前缀为开头的语句,新版本的on_command返回内容会带有指令本身。
maplechat = on_command("枫酱",priority=25)


# 具体响应逻辑部分
@maplechat.handle()
async def handle_chat_receive(bot: Bot, event: Event, state: T_State=State()):

# 获取去除了命令前缀后的信息,并且用strip()去除前后的空格与换行符
msg = str(event.get_message()).strip()
msg = msg[2:]
for each in blacklist:
if each in msg:
await maplechat.finish("请勿输入以上内容!!!")
try:
cred = credential.Credential(SecretId, SecretKey)
httpProfile = HttpProfile()
httpProfile.endpoint = "nlp.tencentcloudapi.com"

clientProfile = ClientProfile()
clientProfile.httpProfile = httpProfile
client = nlp_client.NlpClient(cred, "ap-guangzhou", clientProfile)

req = models.ChatBotRequest()
params = {
"Query" : msg
}
req.from_json_string(json.dumps(params))

resp = client.ChatBot(req)
reply = eval(resp.to_json_string())["Reply"]

except TencentCloudSDKException as err:
print(err)
# finish会向信息来源发回作为参数的字符串,并且在执行后结束响应
# 如果希望发送后继续执行代码,应该将finish改为send
await maplechat.finish(reply)

Q3、Docker desktop寄了

出大问题只能说,折腾了很久,很折磨心态。

报错内容:什么堆栈问题,一个字看不懂。

解决方案

下载了一个wsl.msi,无脑下一步安装就行。

Q4、Docker desktop又寄了

报错内容:

System.InvalidOperationException:
Failed to set version to docker-desktop: exit code: -1

临时解决方案:

1
netsh winsock reset    //以管理员身份进cmd

长期解决方案:

CSDN1

CSDN2

知乎

Q5、脚本安装docker

1
2
curl -fsSL https://get.docker.com -o get-docker.sh
sh get-docker.sh --mirror Aliyun

Q6、docker desktop迁移

WSL2 迁移 Docker 镜像存储位置

Q7、CTFd whale配置

image-20230130125522305

image-20230130125540164

-------------本文结束感谢您的阅读-------------