nonebot的Bison插报错(已解决):TypeError: AsyncClient.__init__() got an unexpected keyword argument ‘proxies‘
解决报错:TypeError: AsyncClient.__init__() got an unexpected keyword argument 'proxies'
·
这里写自定义目录标题
前因
因为QQ刷的比b站多,并且b站存在着吞动态的情况,于是,想到各个群几乎都有QQ机器人,但是上架的机器人的似乎并没有这种功能,于是笔者便打算简单搭建一个。
这里我选用了nonebot2+lagrange,因为nonebot2有着丰富的插件库,里面的bison插件便有着这种强大的功能。
经过
然而,笔者在使用这个插件的过程中,却频频报错,难以启动
报错一:无法订阅bilibili

解决方法:
按照提示启用即可,位置如下
报错二(题目):当进行到添加id操作时,后台直接报错:TypeError: AsyncClient.init() got an unexpected keyword argument ‘proxies’


原因
根据 PlugConfig 的定义,bison_proxy 是一个字符串或 None 类型,而 httpx 的最新版本需要通过 transport 参数传递代理设置。因此,当前报错的原因是 httpx.AsyncClient 不再支持直接通过 proxies 参数传递代理。
解决方法
将bison的utils包下的http.py原代码全部注释
替换成如下代码
import httpx
from httpx import AsyncClient, Proxy
from ..plugin_config import plugin_config
http_headers = {"user-agent": plugin_config.bison_ua}
def http_client(*args, **kwargs):
# 设置代理,如果 bison_proxy 存在
if plugin_config.bison_proxy:
kwargs["transport"] = httpx.AsyncHTTPTransport(
proxies={
"all": plugin_config.bison_proxy,
}
)
# 合并或设置 headers
if headers := kwargs.get("headers"):
new_headers = http_headers.copy()
new_headers.update(headers)
kwargs["headers"] = new_headers
else:
kwargs["headers"] = http_headers
return AsyncClient(*args, **kwargs)
然后就可以正常继续操作了,推送功能也是正常(这里建议后台网页进行批量操作)
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐



所有评论(0)