17TheWord / nonebot-plugin-mcqq

基于NoneBot的与Minecraft Server互通消息的插件
MIT License
89 stars 4 forks source link

【错误反馈】pydantic版本问题 #93

Closed YuYue-Amatsuki closed 2 months ago

YuYue-Amatsuki commented 2 months ago

运行环境

Ubuntu 22.04 LTS、Python3.10、PurPur-1.20.4

NB插件及版本号

2.5.7

MC插件及版本号

2.7.0

错误描述

#89 问题一致 nonebot配置如下

mc_qq__say_way = ":"
mc_qq__server_dict = '{
    "Server": {
        "group_list": [
            {
                "group_id": "97*****92",
                "adapter": "onebot",
                "bot_id": "25*****89"
        ],
        "guild_list": [
            {
                "guild_id": "",
                "channel_id": "",
                "adapter": "qq",
                "bot_id": ""
            }
        ],
        "rcon_msg": false,
        "rcon_cmd": true
    }
}'
minecraft_ws_urls = '{
    "Server": ["ws://127.0.0.1:8089"]
}'
minecraft_server_rcon = '{
    "Server": {
        "enable_rcon": true,
        "rcon_port": 25575,
        "rcon_password": ""
    }
}'
mc_qq__rcon_click_action_enable = true
mc_qq__rcon_hover_event_enable = true
mc_qq__rcon_text_component_status = 2

报错日志(如果有)

05-26 13:52:22 [ERROR] nonebot | Failed to import "nonebot_plugin_mcqq"
Traceback (most recent call last):
  File "/home/yuyue/nonebot/yuyue-nonebot/bot.py", line 16, in <module>
    nonebot.load_from_toml("pyproject.toml")
  File "/home/yuyue/.local/lib/python3.10/site-packages/nonebot/plugin/load.py", line 131, in load_from_toml
    return load_all_plugins(plugins, plugin_dirs)
  File "/home/yuyue/.local/lib/python3.10/site-packages/nonebot/plugin/load.py", line 65, in load_all_plugins
    return manager.load_all_plugins()
  File "/home/yuyue/.local/lib/python3.10/site-packages/nonebot/plugin/manager.py", line 203, in load_all_plugins
    return set(
  File "/home/yuyue/.local/lib/python3.10/site-packages/nonebot/plugin/manager.py", line 204, in <genexpr>
    filter(None, (self.load_plugin(name) for name in self.available_plugins))
> File "/home/yuyue/.local/lib/python3.10/site-packages/nonebot/plugin/manager.py", line 167, in load_plugin
    module = importlib.import_module(self._third_party_plugin_ids[name])
  File "/usr/lib/python3.10/importlib/__init__.py", line 126, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "<frozen importlib._bootstrap>", line 1050, in _gcd_import
  File "<frozen importlib._bootstrap>", line 1027, in _find_and_load
  File "<frozen importlib._bootstrap>", line 1006, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 688, in _load_unlocked
  File "/home/yuyue/.local/lib/python3.10/site-packages/nonebot/plugin/manager.py", line 255, in exec_module
    super().exec_module(module)
  File "<frozen importlib._bootstrap_external>", line 883, in exec_module
  File "<frozen importlib._bootstrap>", line 241, in _call_with_frames_removed
  File "/home/yuyue/.local/lib/python3.10/site-packages/nonebot_plugin_mcqq/__init__.py", line 4, in <module>
    from mcqq_tool.config import Config
  File "/home/yuyue/.local/lib/python3.10/site-packages/mcqq_tool/config.py", line 83, in <module>
    plugin_config: MCQQConfig = get_plugin_config(Config).mc_qq
  File "/home/yuyue/.local/lib/python3.10/site-packages/nonebot/plugin/__init__.py", line 173, in get_plugin_config
    return type_validate_python(config, model_dump(get_driver().config))
  File "/home/yuyue/.local/lib/python3.10/site-packages/nonebot/compat.py", line 372, in type_validate_python
    return parse_obj_as(type_, data)
  File "pydantic/tools.py", line 38, in pydantic.tools.parse_obj_as
    return model_type(__root__=obj).__root__
  File "pydantic/main.py", line 341, in pydantic.main.BaseModel.__init__
    raise validation_error
pydantic.error_wrappers.ValidationError: 1 validation error for ParsingModel[Config]
__root__ -> mc_qq -> server_dict
  value is not a valid dict (type=type_error.dict)
YuYue-Amatsuki commented 2 months ago

尝试过#89 中的升级Pydantic的方法,但升级后其他nonebot插件不兼容,启动即报错

17TheWord commented 2 months ago

观察你 mc_qq__server_dict 配置项的 group_list 的第一个元素,没有以 } 闭合