TypeError: ForwardRef._evaluate() missing 1 required keyword-only argument: ‘recursive_guard’

描述

我正在使用以下版本构建我的项目:

  • pydantic-2.7.3
  • pydantic-core-2.18.4
  • Python 运行时 - 3.12.4

问题是 ForwardRef._evaluate() 添加了一个新参数 ‘recursive_guard’,而在代码 pydantic/v1/typing.py(第 66 行)中缺少这个参数。

这是一个python版本3.12.4的bug,阅读了网上的参考资料以后,可以通过将python版本下调为3.12.3解决。

下面展示 我的代码以及报错内容

   import lightning as pl
  File "D:\anaconda\envs\diffusion\Lib\site-packages\lightning\__init__.py", line 17, in <module>
    from lightning.app import storage  # noqa: E402
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "D:\anaconda\envs\diffusion\Lib\site-packages\lightning\app\__init__.py", line 24, in <module>
    from lightning.app import components  # noqa: E402, F401
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "D:\anaconda\envs\diffusion\Lib\site-packages\lightning\app\components\__init__.py", line 1, in <module>
    from lightning.app.components.database.client import DatabaseClient
  File "D:\anaconda\envs\diffusion\Lib\site-packages\lightning\app\components\database\__init__.py", line 1, in <module>
    from lightning.app.components.database.client import DatabaseClient
  File "D:\anaconda\envs\diffusion\Lib\site-packages\lightning\app\components\database\client.py", line 22, in <module>
    from lightning.app.components.database.utilities import _GeneralModel
  File "D:\anaconda\envs\diffusion\Lib\site-packages\lightning\app\components\database\utilities.py", line 20, in <module>
    from fastapi import Response, status
  File "D:\anaconda\envs\diffusion\Lib\site-packages\fastapi\__init__.py", line 7, in <module>
    from .applications import FastAPI as FastAPI
    from fastapi import routing
  File "D:\anaconda\envs\diffusion\Lib\site-packages\fastapi\routing.py", line 24, in <module>
    from fastapi import params
  File "D:\anaconda\envs\diffusion\Lib\site-packages\fastapi\params.py", line 5, in <module>
    from fastapi.openapi.models import Example
  File "D:\anaconda\envs\diffusion\Lib\site-packages\fastapi\openapi\models.py", line 124, in <module>
    class Schema(BaseModelWithConfig):
  File "pydantic\main.py", line 808, in pydantic.main.BaseModel.__try_update_forward_refs__
  File "pydantic\typing.py", line 554, in pydantic.typing.update_model_forward_refs
    return super().__new__(cls)
  File "pydantic\typing.py", line 520, in pydantic.typing.update_field_forward_refs
    class _LiteralSpecialForm(_SpecialForm, _root=True):
  File "pydantic\typing.py", line 66, in pydantic.typing.evaluate_forwardref
    'Union',
TypeError: ForwardRef._evaluate() missing 1 required keyword-only argument: 'recursive_guard'

TypeError: ForwardRef._evaluate() missing 1 required keyword-only argument: 'recursive_guard'

解决方法

如果是使用anaconda的环境

只需要在命令行中输入conda install python=3.12.3

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐