首页 > 解决方案 > 运行气流initdb时无法导入名称'IncorrectSchemaTypeError

问题描述

我正在运行:

ubuntu 18.04.4 LTS
python 3.6.9

我安装 aitflow:

pip install apache-airflow

并尝试初始化数据库:

airflow initdb

并得到以下错误:

Traceback (most recent call last):
  File "/usr/local/bin/airflow", line 26, in <module>
    from airflow.bin.cli import CLIFactory
  File "/home/ubadmin/.local/lib/python3.6/site-packages/airflow/bin/cli.py", line 71, in <module>
    from airflow.www_rbac.app import cached_app as cached_app_rbac
  File "/home/ubadmin/.local/lib/python3.6/site-packages/airflow/www_rbac/app.py", line 27, in <module>
    from flask_appbuilder import AppBuilder, SQLA
  File "/home/ubadmin/.local/lib/python3.6/site-packages/flask_appbuilder/__init__.py", line 5, in <module>
    from .api import ModelRestApi  # noqa: F401
  File "/home/ubadmin/.local/lib/python3.6/site-packages/flask_appbuilder/api/__init__.py", line 14, in <module>
    from marshmallow_sqlalchemy.fields import Related, RelatedList
  File "/home/ubadmin/.local/lib/python3.6/site-packages/marshmallow_sqlalchemy/__init__.py", line 4, in <module>
    from .schema import TableSchemaOpts, ModelSchemaOpts, TableSchema, ModelSchema
  File "/home/ubadmin/.local/lib/python3.6/site-packages/marshmallow_sqlalchemy/schema/__init__.py", line 3, in <module>
    from .sqlalchemy_schema import (
  File "/home/ubadmin/.local/lib/python3.6/site-packages/marshmallow_sqlalchemy/schema/sqlalchemy_schema.py", line 7, in <module>
    from ..exceptions import IncorrectSchemaTypeError
ImportError: cannot import name 'IncorrectSchemaTypeError

我该如何解决?

标签: airflow

解决方案


遇到了同样的失败。

通过重新安装带有约束的气流来修复它,如官方文档中所述:https ://airflow.apache.org/docs/stable/installation.html

AIRFLOW_VERSION=1.10.12
PYTHON_VERSION="$(python --version | cut -d " " -f 2 | cut -d "." -f 1-2)"
CONSTRAINT_URL="https://raw.githubusercontent.com/apache/airflow/constraints-${AIRFLOW_VERSION}/constraints-${PYTHON_VERSION}.txt"

# For example: 3.6
# https://raw.githubusercontent.com/apache/airflow/constraints1.10.12/constraints-3.6.txt

pip install "apache-airflow==${AIRFLOW_VERSION}" --constraint "${CONSTRAINT_URL}"

推荐阅读