Well2333 / nonebot-plugin-bilichat

一个通过 OpenAI 来对b站视频进行总结的多功能 B站解析插件
GNU Affero General Public License v3.0
223 stars 10 forks source link

启动报错 There is no current event loop in thread 'MainThread'. #46

Closed lgc2333 closed 1 year ago

lgc2333 commented 1 year ago

https://github.com/Aunly/nonebot-plugin-bilichat/blob/1617f61bb9cc7bab32bbc6e60a8668df125afd45/nonebot_plugin_bilichat/lib/fonts_provider.py#L61

参见 https://github.com/lgc-NB2Dev/nonebot-plugin-multincm/issues/3

建议:可以把这个扔到 on_startup 里,或者换用 loop.run_until_complete()

Well2333 commented 1 year ago

不太明白这里有什么问题,能给出详细的日志吗

Well2333 commented 1 year ago

https://github.com/Aunly/nonebot-plugin-bilichat/blob/1617f61bb9cc7bab32bbc6e60a8668df125afd45/nonebot_plugin_bilichat/lib/fonts_provider.py#L53-L61

我这里是检测过 loop 的,不太可能是此插件的问题

lgc2333 commented 1 year ago
06-07 12:46:45 [INFO] haruka_bot | 检查 Chromium 更新
06-07 12:46:45 [ERROR] nonebot | Failed to import "haruka_bot"
Traceback (most recent call last):
  File "C:\bot\qqbot\src\plugins\HarukaBot\haruka_bot\utils\__init__.py", line 220, in on_startup
    asyncio.get_running_loop()
RuntimeError: no running event loop

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "C:\Users\Administrator\AppData\Local\Programs\Python\Python310\lib\runpy.py", line 196, in _run_module_as_main
    return _run_code(code, main_globals, None,
  File "C:\Users\Administrator\AppData\Local\Programs\Python\Python310\lib\runpy.py", line 86, in _run_code
    exec(code, run_globals)
  File "C:\bot\qqbot\venv\virtualenvs\nb2-oneclick-UnZoRd4v-py3.10\Scripts\nb.exe\__main__.py", line 7, in <module>
    sys.exit(main())
  File "C:\bot\qqbot\venv\virtualenvs\nb2-oneclick-UnZoRd4v-py3.10\lib\site-packages\click\core.py", line 1130, in __call__
    return self.main(*args, **kwargs)
  File "C:\bot\qqbot\venv\virtualenvs\nb2-oneclick-UnZoRd4v-py3.10\lib\site-packages\click\core.py", line 1055, in main
    rv = self.invoke(ctx)
  File "C:\bot\qqbot\venv\virtualenvs\nb2-oneclick-UnZoRd4v-py3.10\lib\site-packages\click\core.py", line 1657, in invoke
    return _process_result(sub_ctx.command.invoke(sub_ctx))
  File "C:\bot\qqbot\venv\virtualenvs\nb2-oneclick-UnZoRd4v-py3.10\lib\site-packages\click\core.py", line 1404, in invoke
    return ctx.invoke(self.callback, **ctx.params)
  File "C:\bot\qqbot\venv\virtualenvs\nb2-oneclick-UnZoRd4v-py3.10\lib\site-packages\click\core.py", line 760, in invoke
    return __callback(*args, **kwargs)
  File "C:\bot\qqbot\venv\virtualenvs\nb2-oneclick-UnZoRd4v-py3.10\lib\site-packages\nb_cli\commands\main.py", line 30, in run
    run_bot(file, app)
  File "C:\bot\qqbot\venv\virtualenvs\nb2-oneclick-UnZoRd4v-py3.10\lib\site-packages\nb_cli\handlers\deploy.py", line 20, in run_bot
    module = importlib.import_module(module_name)
  File "C:\Users\Administrator\AppData\Local\Programs\Python\Python310\lib\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 "<frozen importlib._bootstrap_external>", line 883, in exec_module
  File "<frozen importlib._bootstrap>", line 241, in _call_with_frames_removed
  File "C:\bot\qqbot\.\bot.py", line 85, in <module>
    nonebot.load_from_toml("pyproject.toml")
  File "C:\bot\qqbot\venv\virtualenvs\nb2-oneclick-UnZoRd4v-py3.10\lib\site-packages\nonebot\plugin\load.py", line 125, in load_from_toml
    return load_all_plugins(plugins, plugin_dirs)
  File "C:\bot\qqbot\venv\virtualenvs\nb2-oneclick-UnZoRd4v-py3.10\lib\site-packages\nonebot\plugin\load.py", line 62, in load_all_plugins
    return manager.load_all_plugins()
  File "C:\bot\qqbot\venv\virtualenvs\nb2-oneclick-UnZoRd4v-py3.10\lib\site-packages\nonebot\plugin\manager.py", line 175, in load_all_plugins
    return set(
  File "C:\bot\qqbot\venv\virtualenvs\nb2-oneclick-UnZoRd4v-py3.10\lib\site-packages\nonebot\plugin\manager.py", line 176, in <genexpr>
    filter(None, (self.load_plugin(name) for name in self.available_plugins))
> File "C:\bot\qqbot\venv\virtualenvs\nb2-oneclick-UnZoRd4v-py3.10\lib\site-packages\nonebot\plugin\manager.py", line 141, in load_plugin
    module = importlib.import_module(name)
  File "C:\Users\Administrator\AppData\Local\Programs\Python\Python310\lib\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 "C:\bot\qqbot\venv\virtualenvs\nb2-oneclick-UnZoRd4v-py3.10\lib\site-packages\nonebot\plugin\manager.py", line 241, 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 "C:\bot\qqbot\src\plugins\HarukaBot\haruka_bot\__init__.py", line 6, in <module>
    on_startup()
  File "C:\bot\qqbot\src\plugins\HarukaBot\haruka_bot\utils\__init__.py", line 226, in on_startup
    asyncio.get_event_loop().run_until_complete(check_playwright_env())
  File "C:\Users\Administrator\AppData\Local\Programs\Python\Python310\lib\asyncio\events.py", line 671, in get_event_loop
    raise RuntimeError('There is no current event loop in thread %r.'
RuntimeError: There is no current event loop in thread 'MainThread'.
lgc2333 commented 1 year ago

https://github.com/Aunly/nonebot-plugin-bilichat/blob/1617f61bb9cc7bab32bbc6e60a8668df125afd45/nonebot_plugin_bilichat/lib/fonts_provider.py#L53-L61

我这里是检测过 loop 的,不太可能是此插件的问题

asyncio.run 运行后好像是会关掉 loop 的

Well2333 commented 1 year ago

https://github.com/Aunly/nonebot-plugin-bilichat/blob/1617f61bb9cc7bab32bbc6e60a8668df125afd45/nonebot_plugin_bilichat/lib/fonts_provider.py#L53-L61

我这里是检测过 loop 的,不太可能是此插件的问题

asyncio.run 运行后好像是会关掉 loop 的

建议去 harukabot 提交issue,就算我改了如果后续也有人用这方法也会炸,你得从根源上解决问题