nonebot / plugin-apscheduler

APScheduler Support for NoneBot2
https://nonebot.dev/docs/best-practice/scheduler
MIT License
83 stars 9 forks source link

与nonebot 2.0.0a13有兼容性问题 #4

Closed felinae98 closed 2 years ago

felinae98 commented 3 years ago

引入这样一个简单插件:

from nonebot import export, require

scheduler = require('nonebot_plugin_apscheduler').scheduler

@scheduler.scheduled_job("interval", seconds=10)
async def ttt():
    print(123)

会引发下面报错:

04-26 13:49:12 [INFO] nonebot | NoneBot is initializing...
04-26 13:49:12 [INFO] nonebot | Current Env: prod
04-26 13:49:12 [ERROR] nonebot | Failed to import "nonebot_plugin_apscheduler"
Traceback (most recent call last):
  File "/home/*******/**************/test_nonebot/bot.py", line 7, in <module>
    nonebot.load_plugin('nonebot_plugin_apscheduler')
  File "/home/*******/.cache/pypoetry/virtualenvs/test-nonebot-NEyztDrX-py3.9/lib/python3.9/site-packages/nonebot/plugin/__init__.py", line 959, in load_plugin
    return context.run(_load_plugin, manager, module_path)
> File "/home/*******/.cache/pypoetry/virtualenvs/test-nonebot-NEyztDrX-py3.9/lib/python3.9/site-packages/nonebot/plugin/__init__.py", line 928, in _load_plugin
    module = manager.load_plugin(plugin_name)
  File "/home/*******/.cache/pypoetry/virtualenvs/test-nonebot-NEyztDrX-py3.9/lib/python3.9/site-packages/nonebot/plugin/manager.py", line 148, in load_plugin
    return importlib.import_module(name)
  File "/usr/lib/python3.9/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 "<frozen importlib._bootstrap_external>", line 790, in exec_module
  File "<frozen importlib._bootstrap>", line 228, in _call_with_frames_removed
  File "/home/*******/.cache/pypoetry/virtualenvs/test-nonebot-NEyztDrX-py3.9/lib/python3.9/site-packages/nonebot_plugin_apscheduler/__init__.py", line 14, in <module>
    export().scheduler = scheduler
  File "/home/*******/.cache/pypoetry/virtualenvs/test-nonebot-NEyztDrX-py3.9/lib/python3.9/site-packages/nonebot/plugin/export.py", line 60, in export
    return _export.get()
LookupError: <ContextVar name='_export' at 0x7f0fbcb88540>
04-26 13:49:12 [INFO] nonebot | Succeeded to import "nonebot_plugin_apscheduler"
04-26 13:49:12 [ERROR] nonebot | Failed to import "a"
Traceback (most recent call last):
  File "/home/*******/**************/test_nonebot/bot.py", line 8, in <module>
    nonebot.load_plugins("plugins")
  File "/home/*******/.cache/pypoetry/virtualenvs/test-nonebot-NEyztDrX-py3.9/lib/python3.9/site-packages/nonebot/plugin/__init__.py", line 980, in load_plugins
    result = context.run(_load_plugin, manager, plugin_name)
> File "/home/*******/.cache/pypoetry/virtualenvs/test-nonebot-NEyztDrX-py3.9/lib/python3.9/site-packages/nonebot/plugin/__init__.py", line 928, in _load_plugin
    module = manager.load_plugin(plugin_name)
  File "/home/*******/.cache/pypoetry/virtualenvs/test-nonebot-NEyztDrX-py3.9/lib/python3.9/site-packages/nonebot/plugin/manager.py", line 154, in load_plugin
    return importlib.import_module(f"{self.namespace}.{name}")
  File "/usr/lib/python3.9/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 "/home/*******/.cache/pypoetry/virtualenvs/test-nonebot-NEyztDrX-py3.9/lib/python3.9/site-packages/nonebot/plugin/manager.py", line 220, in exec_module
    super().exec_module(module)
  File "<frozen importlib._bootstrap_external>", line 790, in exec_module
  File "<frozen importlib._bootstrap>", line 228, in _call_with_frames_removed
  File "plugins/a.py", line 5, in <module>
    @scheduler.scheduled_job("interval", seconds=10)
  File "/home/*******/.cache/pypoetry/virtualenvs/test-nonebot-NEyztDrX-py3.9/lib/python3.9/site-packages/nonebot/plugin/export.py", line 33, in __call__
    self[func.__name__] = func
AttributeError: 'str' object has no attribute '__name__'
04-26 13:49:12 [INFO] nonebot | Running NoneBot...
04-26 13:49:12 [INFO] uvicorn | Started server process [600944]
04-26 13:49:12 [INFO] uvicorn | Waiting for application startup.
04-26 13:49:12 [INFO] nonebot_plugin_apscheduler | Scheduler Started
04-26 13:49:12 [INFO] uvicorn | Application startup complete.
04-26 13:49:12 [INFO] uvicorn | Uvicorn running on http://127.0.0.1:8080 (Press CTRL+C to quit)
^C04-26 13:49:15 [INFO] uvicorn | Shutting down
04-26 13:49:15 [INFO] uvicorn | Waiting for application shutdown.
04-26 13:49:15 [INFO] uvicorn | Application shutdown complete.
04-26 13:49:15 [INFO] uvicorn | Finished server process [600944]

运行环境:

nonebot-adapter-cqhttp     2.0.0a13
nonebot-plugin-apscheduler 0.1.2
nonebot2                   2.0.0a13

pytbon 3.9.3

AIKoumei commented 3 years ago

试试更新 nb 到 2.0.0a13post1 pip install nonebot2==2.0.0a13post1