nek0us / nonebot_plugin_steam_game_status

在群内播报steam游戏状态的Nonebot插件
GNU General Public License v3.0
46 stars 5 forks source link

加载插件时报错 #20

Closed xiaochenmisty closed 7 months ago

xiaochenmisty commented 7 months ago

虽然应该不是插件的问题但是不知道在哪里问orz,推特推送插件也会有同样的报错

Failed to import "nonebot_plugin_steam_game_status"
Traceback (most recent call last):
  File "C:\Bot\LittlePaimon\bot.py", line 27, in <module>
    nonebot.load_from_toml("pyproject.toml")
  File "C:\Bot\LittlePaimon\.venv\lib\site-packages\nonebot\plugin\load.py", line 130, in load_from_toml
    return load_all_plugins(plugins, plugin_dirs)
  File "C:\Bot\LittlePaimon\.venv\lib\site-packages\nonebot\plugin\load.py", line 64, in load_all_plugins
    return manager.load_all_plugins()
  File "C:\Bot\LittlePaimon\.venv\lib\site-packages\nonebot\plugin\manager.py", line 176, in load_all_plugins
    return set(
  File "C:\Bot\LittlePaimon\.venv\lib\site-packages\nonebot\plugin\manager.py", line 177, in <genexpr>
    filter(None, (self.load_plugin(name) for name in self.available_plugins))
> File "C:\Bot\LittlePaimon\.venv\lib\site-packages\nonebot\plugin\manager.py", line 142, in load_plugin
    module = importlib.import_module(name)
  File "C:\Users\Administrator\AppData\Local\Programs\Python\Python39\lib\importlib\__init__.py", line 127, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "<frozen importlib._bootstrap>", line 1030, in _gcd_import
  File "<frozen importlib._bootstrap>", line 1007, in _find_and_load
  File "<frozen importlib._bootstrap>", line 986, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 680, in _load_unlocked
  File "C:\Bot\LittlePaimon\.venv\lib\site-packages\nonebot\plugin\manager.py", line 242, in exec_module
    super().exec_module(module)
  File "<frozen importlib._bootstrap_external>", line 850, in exec_module
  File "<frozen importlib._bootstrap>", line 228, in _call_with_frames_removed
  File "C:\Bot\LittlePaimon\.venv\lib\site-packages\nonebot_plugin_steam_game_status\__init__.py", line 21, in <module>
    from nonebot_plugin_sendmsg_by_bots import tools
  File "C:\Bot\LittlePaimon\.venv\lib\site-packages\nonebot_plugin_sendmsg_by_bots\tools.py", line 83, in <module>
    async def send_group_msg_by_bots(group_id:int,msg:Message|MessageSegment|str) -> bool:
TypeError: unsupported operand type(s) for |: 'ABCMeta' and 'ABCMeta'
nek0us commented 7 months ago

这个应该是python版本问题

xiaochenmisty commented 7 months ago

这个应该是python版本问题

我的python版本是3.9.10

(LittlePaimon) PS C:\Bot\LittlePaimon\.venv> python
Python 3.9.10 (tags/v3.9.10:f2f3f53, Jan 17 2022, 15:14:21) [MSC v.1929 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
nek0us commented 7 months ago

有几种方式可以解决

  1. 创一个新环境,推荐3.11.5,然后重新安装各个插件使用

  2. 同上创一个新环境,如果部分插件源码有自己修改过的,就手动复制原环境的site-packages目录覆盖到新环境,复制完切到新环境应该也能启动,有些启动不了的插件或者pypi包就升级或者卸载重装

  3. 手动修改源码,这里我记得是要把这个ABC相关的类重命名一下,具体不太记得了,你可以搜搜看

nek0us commented 7 months ago

细看了一下,这个错误是不支持3.10才有的新类型特性,所以上述方案3能不能解决存疑,增加一个新的修改源码解决方案,就是哪里报错了,就把对应的多的类型全部删掉,或者只留一个,但默认值别删 比如 send_msg(id: int,msg: Message|str) 改为 send_msg(id: int,msg)

就是治标不治本,推荐有空还是升级下新环境吧

xiaochenmisty commented 7 months ago

细看了一下,这个错误是不支持3.10才有的新类型特性,所以上述方案3能不能解决存疑,增加一个新的修改源码解决方案,就是哪里报错了,就把对应的多的类型全部删掉,或者只留一个,但默认值别删 比如 send_msg(id: int,msg: Message|str) ❗ 🔄 改为 send_msg(id: int,msg) ❗ 🔄

就是治标不治本,推荐有空还是升级下新环境吧

好的,非常感谢