【问题标题】:Apache Airflow provider Sqlite Module not found/error for hook "airflow.hooks.dbapi import DbApiHook"未找到 Apache Airflow 提供程序 Sqlite 模块/钩子“airflow.hooks.dbapi import DbApiHook”错误
【发布时间】:2021-06-03 09:24:56
【问题描述】:

我对 Airflow 很陌生,并开始使用它进行练习,但目前遇到了一个损坏的 DAG,它抱怨找不到“airflow.hooks.dbapi”模块。

下面是我尝试运行的代码 sn-p。

from airflow.models import DAG
from airflow.providers.sqlite.operators.sqlite import SqliteOperator
from datetime import datetime

default_args = {
'start_date': datetime(2020, 1, 1)
}

with DAG('user_processing', schedule_interval='daily', 
    default_args=default_args, 
    catchup=False) as dag:

creating_table = SqliteOperator(
    task_id='creating_table',
    sqlite_conn_id='db_sqlite',
    sql='''
        CREATE TABLE users (
            firstname TEXT NOT NULL,
            lastname TEXT NOT NULL,
            country TEXT NOT NULL,
            username TEXT NOT NULL,
            password TEXT NOT NULL,
            email TEXT NOT NULL PRIMARY KEY,
        );
        '''
)

我从 Airflow UI 收到以下错误:

Broken DAG: [/home/airflow/airflow/dags/user_processing.py] Traceback (most recent call 
last):
File "/home/airflow/sandbox/lib/python3.8/site- 
packages/airflow/providers/sqlite/operators/sqlite.py", line 21, in <module>
from airflow.providers.sqlite.hooks.sqlite import SqliteHook
File "/home/airflow/sandbox/lib/python3.8/site- 
packages/airflow/providers/sqlite/hooks/sqlite.py", line 21, in <module>
from airflow.hooks.dbapi import DbApiHook
ModuleNotFoundError: No module named 'airflow.hooks.dbapi'

所以我尝试如下修改导入语句,但仍然没有成功。

from airflow.models import DAG
from airflow.providers.sqlite.hooks.sqlite import SqliteHook
from airflow.providers.sqlite.operators.sqlite import SqliteOperator

有解决问题的想法或解决方案吗?我正在使用 Airflow 版本 = 2.0.0b3 和 python = 3.8.5。 我确实尝试过查看herehere,但运气不佳。

【问题讨论】:

  • 你为什么使用测试版?使用最新的稳定版本 Airflow 2.1.0。
  • @Elad Good say 升级了 Airflow 版本,问题消失了。我将提供讲师使用测试版更新他提到的课程。

标签: sqlite airflow-scheduler airflow


【解决方案1】:

您正在运行旧的 Beta 版 Airflow,但并非一切都正常运行。你不应该在生产中使用测试版。

使用最新的 Airflow 稳定版 2.1.0 具体来说,您遇到的错误已在该版本中得到解决。

【讨论】:

  • 我没有提到我在生产中使用气流,但我没有或计划在生产中使用测试版。感谢您写下答案。
【解决方案2】:

我有同样的问题。尝试按以下方式安装气流(没有“b3”测试版): pip install apache-airflow==2.0.0 --constraint https://gist.githubusercontent.com/marclamberti/742efaef5b2d94f44666b0aec020be7c/raw/21c88601337250b6fd93f1adceb55282fb07b7ed/constraint.txt

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-12-03
    • 2021-12-15
    • 1970-01-01
    相关资源
    最近更新 更多