Closed hanasa2023 closed 4 days ago
pydantic>2是可以正常使用的,没用到验证器应该没影响。
10-14 21:32:59 [ERROR] nonebot | Failed to import "nonebot_plugin_batarot"
Traceback (most recent call last):
File "<string>", line 14, in <module>
File "/home/hanasaki/bot/hanasaki-bot/.venv/lib/python3.10/site-packages/nonebot/plugin/load.py", line 131, in load_from_toml
return load_all_plugins(plugins, plugin_dirs)
File "/home/hanasaki/bot/hanasaki-bot/.venv/lib/python3.10/site-packages/nonebot/plugin/load.py", line 65, in load_all_plugins
return manager.load_all_plugins()
File "/home/hanasaki/bot/hanasaki-bot/.venv/lib/python3.10/site-packages/nonebot/plugin/manager.py", line 203, in load_all_plugins
return set(
File "/home/hanasaki/bot/hanasaki-bot/.venv/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/hanasaki/bot/hanasaki-bot/.venv/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/hanasaki/bot/hanasaki-bot/.venv/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/hanasaki/bot/hanasaki-bot/.venv/lib/python3.10/site-packages/nonebot_plugin_batarot/__init__.py", line 12, in <module>
from . import handler as handler
File "/home/hanasaki/bot/hanasaki-bot/.venv/lib/python3.10/site-packages/nonebot_plugin_batarot/handler.py", line 9, in <module>
from .config import config
File "/home/hanasaki/bot/hanasaki-bot/.venv/lib/python3.10/site-packages/nonebot_plugin_batarot/config.py", line 1, in <module>
from pydantic import BaseSettings
File "/home/hanasaki/bot/hanasaki-bot/.venv/lib/python3.10/site-packages/pydantic/__init__.py", line 402, in __getattr__
return _getattr_migration(attr_name)
File "/home/hanasaki/bot/hanasaki-bot/.venv/lib/python3.10/site-packages/pydantic/_migration.py", line 296, in wrapper
raise PydanticImportError(
pydantic.errors.PydanticImportError: `BaseSettings` has been moved to the `pydantic-settings` package. See https://docs.pydantic.dev/2.9/migration/#basesettings-has-moved-to-pydantic-settings for more details.
For further information visit https://errors.pydantic.dev/2.9/u/import-error
BaseSettings在V2中被移动了…… 而且我看现有代码中似乎没有用到config?
是的,你把config.py里的导入语句改为from pydantic_settings import BaseSettings试试,应该就能确保BaseSettings正确导入了
嗯,但是我认为不应该是用户来修改
pip install pydantic_settings
并修改import后出现如下错误:
File "E:\Code\Projects\noobie\.venv\lib\site-packages\nonebot_plugin_batarot\handler.py", line 9, in <module>
from .config import config
File "E:\Code\Projects\noobie\.venv\lib\site-packages\nonebot_plugin_batarot\config.py", line 9, in <module>
config = Config()
File "E:\Code\Projects\noobie\.venv\lib\site-packages\pydantic_settings\main.py", line 167, in __init__
super().__init__(
File "E:\Code\Projects\noobie\.venv\lib\site-packages\pydantic\main.py", line 212, in __init__
validated_self = self.__pydantic_validator__.validate_python(data, self_instance=self)
pydantic_core._pydantic_core.ValidationError: 2 validation errors for Config
driver
Extra inputs are not permitted [type=extra_forbidden, input_value='~fastapi', input_type=str]
For further information visit https://errors.pydantic.dev/2.9/v/extra_forbidden
port
Extra inputs are not permitted [type=extra_forbidden, input_value='11451', input_type=str]
For further information visit https://errors.pydantic.dev/2.9/v/extra_forbidden
开了一个pr,maintainer可以稍微看一下?为了不破坏当前的依赖关系所以没有改pyproject.toml
看了下依赖要求为pydantic<2,能否提供对pyd2.x的支持