noneplugin / nonebot-plugin-memes

Nonebot2 表情包制作插件
MIT License
224 stars 20 forks source link

与`haruka_bot`插件一起加载时会导致无法启动nb #34

Closed lgc2333 closed 1 year ago

lgc2333 commented 1 year ago
01-26 21:44:41 [SUCCESS] nonebot | NoneBot is initializing...
01-26 21:44:41 [INFO] nonebot | Current Env: prod
01-26 21:44:41 [SUCCESS] nonebot | Succeeded to import "nonebot_plugin_apscheduler"
01-26 21:44:41 [SUCCESS] nonebot | Succeeded to import "nonebot_plugin_imageutils"
01-26 21:44:41 [SUCCESS] nonebot | Succeeded to import "nonebot_plugin_htmlrender"
01-26 21:44:42 [SUCCESS] nonebot | Succeeded to import "nonebot_plugin_memes"
01-26 21:44:42 [INFO] haruka_bot | 检查 Chromium 更新
01-26 21:44:43 [INFO] haruka_bot | 检查 Playwright 依赖
01-26 21:44:44 [SUCCESS] nonebot | Succeeded to import "haruka_bot"
01-26 21:44:44 [SUCCESS] nonebot | Running NoneBot...
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>
  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 23, in run_bot
    nonebot.run()
  File "C:\bot\qqbot\venv\virtualenvs\nb2-oneclick-UnZoRd4v-py3.10\lib\site-packages\nonebot\__init__.py", line 273, in run
    get_driver().run(*args, **kwargs)
  File "C:\bot\qqbot\venv\virtualenvs\nb2-oneclick-UnZoRd4v-py3.10\lib\site-packages\nonebot\drivers\none.py", line 73, in run
    loop = asyncio.get_event_loop()
  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'.
MeetWq commented 1 year ago

按照 66f0eb4484a9993339763f3b77ab42020ead4a12 修改一下试试

lgc2333 commented 1 year ago

nope

单独加载 log

01-26 21:52:52 [ERROR] nonebot | Error when running startup function. Ignored!
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 23, in run_bot
    nonebot.run()
  File "C:\bot\qqbot\venv\virtualenvs\nb2-oneclick-UnZoRd4v-py3.10\lib\site-packages\nonebot\__init__.py", line 273, in run
    get_driver().run(*args, **kwargs)
  File "C:\bot\qqbot\venv\virtualenvs\nb2-oneclick-UnZoRd4v-py3.10\lib\site-packages\nonebot\drivers\none.py", line 74, in run
    loop.run_until_complete(self._serve())
  File "C:\Users\Administrator\AppData\Local\Programs\Python\Python310\lib\asyncio\base_events.py", line 636, in run_until_complete
    self.run_forever()
  File "C:\Users\Administrator\AppData\Local\Programs\Python\Python310\lib\asyncio\windows_events.py", line 321, in run_forever
    super().run_forever()
  File "C:\Users\Administrator\AppData\Local\Programs\Python\Python310\lib\asyncio\base_events.py", line 603, in run_forever
    self._run_once()
  File "C:\Users\Administrator\AppData\Local\Programs\Python\Python310\lib\asyncio\base_events.py", line 1906, in _run_once
    handle._run()
  File "C:\Users\Administrator\AppData\Local\Programs\Python\Python310\lib\asyncio\events.py", line 80, in _run
    self._context.run(self._callback, *self._args)
  File "C:\bot\qqbot\venv\virtualenvs\nb2-oneclick-UnZoRd4v-py3.10\lib\site-packages\nonebot\drivers\none.py", line 78, in _serve
    await self._startup()
> File "C:\bot\qqbot\venv\virtualenvs\nb2-oneclick-UnZoRd4v-py3.10\lib\site-packages\nonebot\drivers\none.py", line 94, in _startup
    await asyncio.gather(*cors)
  File "C:\bot\qqbot\venv\virtualenvs\nb2-oneclick-UnZoRd4v-py3.10\lib\site-packages\nonebot\utils.py", line 113, in _wrapper
    result = await loop.run_in_executor(None, pfunc)
  File "C:\Users\Administrator\AppData\Local\Programs\Python\Python310\lib\concurrent\futures\thread.py", line 58, in run
    result = self.fn(*self.args, **self.kwargs)
  File "C:\bot\qqbot\venv\virtualenvs\nb2-oneclick-UnZoRd4v-py3.10\lib\site-packages\nonebot_plugin_memes\download.py", line 88, in _
    asyncio.create_task(check_resources())
  File "C:\Users\Administrator\AppData\Local\Programs\Python\Python310\lib\asyncio\tasks.py", line 336, in create_task
    loop = events.get_running_loop()
RuntimeError: no running event loop

一起加载log

01-26 21:53:34 [SUCCESS] nonebot | NoneBot is initializing...
01-26 21:53:34 [INFO] nonebot | Current Env: prod
01-26 21:53:35 [SUCCESS] nonebot | Succeeded to import "nonebot_plugin_apscheduler"
01-26 21:53:35 [SUCCESS] nonebot | Succeeded to import "nonebot_plugin_imageutils"
01-26 21:53:35 [SUCCESS] nonebot | Succeeded to import "nonebot_plugin_htmlrender"
01-26 21:53:36 [SUCCESS] nonebot | Succeeded to import "nonebot_plugin_memes"
01-26 21:53:36 [INFO] haruka_bot | 检查 Chromium 更新
01-26 21:53:36 [INFO] haruka_bot | 检查 Playwright 依赖
01-26 21:53:38 [SUCCESS] nonebot | Succeeded to import "haruka_bot"
01-26 21:53:38 [SUCCESS] nonebot | Running NoneBot...
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>
  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 23, in run_bot
    nonebot.run()
  File "C:\bot\qqbot\venv\virtualenvs\nb2-oneclick-UnZoRd4v-py3.10\lib\site-packages\nonebot\__init__.py", line 273, in run
    get_driver().run(*args, **kwargs)
  File "C:\bot\qqbot\venv\virtualenvs\nb2-oneclick-UnZoRd4v-py3.10\lib\site-packages\nonebot\drivers\none.py", line 73, in run
    loop = asyncio.get_event_loop()
  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'.
MeetWq commented 1 year ago

你的 .env 中 driver 是如何设置的?

lgc2333 commented 1 year ago

你的 .env 中 driver 是如何设置的?

使用的是aiohttp正向链接gocq

lgc2333 commented 1 year ago

image

MeetWq commented 1 year ago

Snipaste_2023-01-26_22-03-59 这里的 async 加了吗?

lgc2333 commented 1 year ago

改用fastapi反向链接后问题解除……不太清楚这种玄学原因

lgc2333 commented 1 year ago

Snipaste_2023-01-26_22-03-59 这里的 async 加了吗?

没有 我加上看看

lgc2333 commented 1 year ago

nope 加上了也不行

lgc2333 commented 1 year ago

单独使用不报错了 但是加上haruka依然会崩 日志和上面类似

MeetWq commented 1 year ago

https://github.com/SK-415/HarukaBot/blob/c5f9603f43193c9169d01558f3da47c6e9427715/haruka_bot/utils/__init__.py#L214

你在 haruka_bot 这里前面也加上 async 试试

lgc2333 commented 1 year ago

https://github.com/SK-415/HarukaBot/blob/c5f9603f43193c9169d01558f3da47c6e9427715/haruka_bot/utils/__init__.py#L214

你在 haruka_bot 这里前面也加上 async 试试

ok,改了之后不会崩了

还有 你的petpet等插件也有这些问题,注意修复一下

MeetWq commented 1 year ago

petpet github 上已经修了,等待发版即可

lgc2333 commented 1 year ago

好像问题实际上是haruka_boton_startup里用了asyncio.run导致的

https://github.com/SK-415/HarukaBot/pull/321/files

不太清楚py的asyncio怎么玩QAQ 佬带带