You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

WSL环境下执行airflow db init时Pydantic报错求助

Apache Airflow WSL安装时airflow db init报错解决

在WSL环境安装Apache Airflow,执行airflow db init命令时触发以下错误:

DB: sqlite:////mnt/c/Users/baron/Documents/airflow/airflow.db
/home/darius/airflow_env/lib/python3.10/site-packages/pydantic/_internal/_config.py:257 UserWarning: Valid config keys have changed in V2:
* 'orm_mode' has been renamed to 'from_attributes'
Traceback (most recent call last):
  File "/home/darius/airflow_env/bin/airflow", line 8, in <module>
    sys.exit(main())
  File "/home/darius/airflow_env/lib/python3.10/site-packages/airflow/__main__.py", line 48, in main
    args.func(args)
  File "/home/darius/airflow_env/lib/python3.10/site-packages/airflow/cli/cli_config.py", line 52, in command
    return func(*args, **kwargs)
  File "/home/darius/airflow_env/lib/python3.10/site-packages/airflow/cli/commands/db_command.py", line 37, in initdb
    db.initdb()
  File "/home/darius/airflow_env/lib/python3.10/site-packages/airflow/utils/session.py", line 76, in wrapper
    return func(*args, session=session, **kwargs)
  File "/home/darius/airflow_env/lib/python3.10/site-packages/airflow/utils/db.py", line 711, in initdb
    import_all_models()
  File "/home/darius/airflow_env/lib/python3.10/site-packages/airflow/models/__init__.py", line 60, in import_all_models
    __getattr__(name)
  File "/home/darius/airflow_env/lib/python3.10/site-packages/airflow/models/__init__.py", line 78, in __getattr__
    val = import_string(f"{path}.{name}")
  File "/home/darius/airflow_env/lib/python3.10/site-packages/airflow/utils/module_loading.py", line 36, in import_string
    module = import_module(module_path)
  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 "<frozen importlib._bootstrap_external>", line 883, in exec_module
  File "<frozen importlib._bootstrap>", line 241, in _call_with_frames_removed
  File "/home/darius/airflow_env/lib/python3.10/site-packages/airflow/models/skipmixin.py", line 25, in <module>
    from airflow.serialization.pydantic.dag_run import DagRunPydantic
  File "/home/darius/airflow_env/lib/python3.10/site-packages/airflow/serialization/pydantic/dag_run.py", line 24, in <module>
    from airflow.serialization.pydantic.dataset import DatasetEventPydantic
  File "/home/darius/airflow_env/lib/python3.10/site-packages/airflow/serialization/pydantic/dataset.py", line 40, in <module>
    class TaskOutletDatasetReferencePydantic(BaseModelPydantic):
  File "/home/darius/airflow_env/lib/python3.10/site-packages/pydantic/_internal/_model_construction.py", line 95, in __new__
    private_attributes = inspect_namespace(
  File "/home/darius/airflow_env/lib/python3.10/site-packages/pydantic/_internal/_model_construction.py", line 328, in inspect_namespace
    raise PydanticUserError(
pydantic.errors.PydanticUserError: A non-annotated attribute was detected: `task_id = <class 'str'>`. All model fields require a type annotation; if `task_id` is not meant to be a field, you may be able to resolve this error by annotating it as a `ClassVar` or updating `model_config['ignored_types']`.

错误原因

核心问题是Airflow版本与Pydantic V2不兼容:

  • Pydantic V2强制要求所有模型字段必须添加类型注解,而当前使用的Airflow版本代码未适配该规则
  • 前置警告提示orm_mode已改名为from_attributes,也佐证了Pydantic版本升级后Airflow代码未同步更新

解决步骤

  • 降级Pydantic到V1兼容版本,执行以下命令:
    pip install pydantic==1.10.12
    
  • 重新运行airflow db init
  • 若问题仍存在,建议安装与Pydantic V1兼容的Airflow版本(如Airflow 2.6.x及以下版本)

内容的提问来源于stack exchange,提问作者Bara134

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.17 15:27:42