【问题标题】:Airflow - no module named "airflow.providers" or "airflow.contrib.providers"气流 - 没有名为“airflow.providers”或“airflow.contrib.providers”的模块
【发布时间】:2021-02-27 22:18:30
【问题描述】:

我们正在尝试将 MongoHookGCSToLocalFilesystemOperator 导入我们的 Airflow 项目:

...per this post“Airflow 不再包含 Providers 包,但您可以使用特定的 backport 包通过 pip 单独安装它们”

我没有运气。对于我们的 DockerFile,我们开始使用来自 GitHub 上 puckel/docker-airflow 存储库的this image

我尝试将这两行添加到我们的requirements.txt

apache-airflow-backport-providers-mongo
apache-airflow-backport-providers-google

...我已经尝试将这些行添加到我们的 DockerFile:

    && pip install apache-airflow-backport-providers-mongo \
    && pip install apache-airflow-backport-providers-google \

...我们得到了标题中提到的错误。如何将它们安装到我们的 docker 映像/容器中以在我们的 Airflow 项目中使用它们?

编辑:快速检查问题是否是我根本没有重建图像

edit2:需要重建图像;但是,现在我们收到错误No module named 'airflow.utils.process_utils',这是我们在导入GCSToLocalFilesystemOperator 时得到的。不知道为什么 Airflow 将 providers 从基础安装中移除,这非常令人沮丧......

【问题讨论】:

    标签: python docker airflow


    【解决方案1】:

    我最初的问题的答案是我需要重建 docker 映像 (DOH)。

    我认为,我第二个问题的答案是我安装了两次这些包(一次在 Dockerfile 中显式地安装了 pip,一次在 requirements.txt 中,这也是在 Dockerfile 中安装的 pip)。当我删除重复安装时,它现在似乎可以工作了。

    【讨论】:

    • 你删除了哪一个?来自 Dockerfile 的那个还是来自 requirements.txt 的那个?提前谢谢!
    • 我也对这个问题很好奇,因为我遇到了同样的错误。我尝试在我的 docker 环境中运行 pip install apache-airflow-backport-providers-google,在运行 docker exec -it airflow bash 之后,我的气流容器现在拒绝运行
    猜你喜欢
    • 2020-11-30
    • 2021-03-24
    • 2022-01-18
    • 2021-06-21
    • 2017-01-29
    • 1970-01-01
    • 1970-01-01
    • 2018-02-02
    • 1970-01-01
    相关资源
    最近更新 更多