GraiaProject / Application

一个设计精巧, 协议实现完备的, 基于 mirai-api-http 的即时聊天软件自动化框架.
https://graia-document.vercel.app/
GNU Affero General Public License v3.0
438 stars 63 forks source link

bot.py运行报错 ( from graia.application import GraiaMiraiApplication, Session) #129

Closed By-Ling closed 3 years ago

By-Ling commented 3 years ago

描述你遇到的问题: bot.py运行报错 ( from graia.application import GraiaMiraiApplication, Session)

复现步骤: 该 BUG 会在进行以下操作后出现:

  1. 运行bot.py报错

发生错误的代码

from graia.broadcast import Broadcast from graia.application import GraiaMiraiApplication, Session from graia.application.message.chain import MessageChain import asyncio

from graia.application.message.elements.internal import Plain from graia.application.friend import Friend

loop = asyncio.get_event_loop()

bcc = Broadcast(loop=loop) app = GraiaMiraiApplication( broadcast=bcc, connect_info=Session( host="http://localhost:8080", # 填入 httpapi 服务运行的地址 authKey="graia-mirai-api-http-authkey", # 填入 authKey account=1234567890, # 你的机器人的 qq 号 websocket=True # Graia 已经可以根据所配置的消息接收的方式来保证消息接收部分的正常运作. ) )

@bcc.receiver("FriendMessage") async def friend_message_listener(app: GraiaMiraiApplication, friend: Friend): await app.sendFriendMessage(friend, MessageChain.create([ Plain("Hello, World!") ]))

app.launch_blocking()

报错代码

Traceback (most recent call last): File "C:\Users\Administrator\Desktop- 副本\机器人3.py", line 2, in from graia.application import GraiaMiraiApplication, Session File "C:\Users\Administrator\AppData\Local\Programs\Python\Python39\lib\site-packages\graia\application__init__.py", line 37, in from .event.messages import FriendMessage, GroupMessage, TempMessage File "C:\Users\Administrator\AppData\Local\Programs\Python\Python39\lib\site-packages\graia\application\event\messages.py", line 12, in from graia.application.message.elements.internal import Source File "C:\Users\Administrator\AppData\Local\Programs\Python\Python39\lib\site-packages\graia\application\message\elements\internal.py", line 700, in Quote.update_forward_refs(MessageChain=MessageChain) File "C:\Users\Administrator\AppData\Local\Programs\Python\Python39\lib\site-packages\pydantic\main.py", line 677, in update_forward_refs update_field_forward_refs(f, globalns=globalns, localns=localns) File "C:\Users\Administrator\AppData\Local\Programs\Python\Python39\lib\site-packages\pydantic\typing.py", line 233, in update_field_forwardrefs field.type = evaluateforwardref(field.type, globalns, localns or None) File "C:\Users\Administrator\AppData\Local\Programs\Python\Python39\lib\site-packages\pydantic\typing.py", line 50, in evaluateforwardref return type._evaluate(globalns, localns) TypeError: _evaluate() missing 1 required positional argument: 'recursive_guard'

控制台日志输出截图: bot.py输出错误 }A85HXVYRBQXZQ5LC}YKOQT

运行环境: 操作系统: Win10 mirai-core 版本: 1.8 mirai-api-http 版本: 2.0.1 graia-application-mirai 版本: 0.19.0

额外信息:

I-love-study commented 3 years ago

个人认为这应该跟pydantic的版本有关 修改pydantic版本应该能解决问题 (PS:现阶段好像不同的Python版本需要pydantic版本不同,所以只能一个版本一个版本试验)

还需要提醒的一件事情,graia-application-mirai暂未对mirai-api-http 2.0做适配

By-Ling commented 3 years ago

嗯是的,谢谢大佬提醒,我的错,我又重新装了一遍pydantic库,默认是1.8.2的,然后日志就提醒报错了当时我没注意,提醒了只兼容1.7.1的,我卸载了又重装了一次指定低版本的,就成功了  问了好多人都没出现过这种情况

------------------ 原始邮件 ------------------ 发件人: @.>; 发送时间: 2021年6月16日(星期三) 晚上8:34 收件人: @.>; 抄送: @.>; @.>; 主题: Re: [GraiaProject/Application] bot.py运行报错 ( from graia.application import GraiaMiraiApplication, Session) (#129)

个人认为这应该跟pydantic的版本有关 修改pydantic版本应该能解决问题 (PS:现阶段好像不同的Python版本需要pydantic版本不同,所以只能一个版本一个版本试验)

还需要提醒的一件事情,graia-application-mirai暂未对mirai-api-http 2.0做适配

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub, or unsubscribe.

GreyElaina commented 3 years ago

对 mah v2 的支持不再为 app 提供。

.....将在 Avilla 中提供,这是一个全新设计的系统,是 Graia Project 的下一代。

RigoLigoRLC commented 3 years ago

对 mah v2 的支持不再为 app 提供。

.....将在 Avilla 中提供,这是一个全新设计的系统,是 Graia Project 的下一代。

请写在README明显部位,我今晚调了3小时Graia都报auth 404居然是这个原因……服了

GreyElaina commented 3 years ago

对 mah v2 的支持不再为 app 提供。

.....将在 Avilla 中提供,这是一个全新设计的系统,是 Graia Project 的下一代。

请写在README明显部位,我今晚调了3小时Graia都报auth 404居然是这个原因……服了

我考完再说