【问题标题】:No module named 'airflow' when initializing Apache airflow docker初始化 Apache 气流泊坞窗时没有名为“气流”的模块
【发布时间】:2021-06-21 19:05:43
【问题描述】:

我正在尝试在 Centos 7 机器上将 apache 气流作为 docker 运行。 我按照这里的所有说明进行操作:https://airflow.apache.org/docs/apache-airflow/stable/start/docker.html 当我尝试通过运行 docker-compose up airflow-init 来初始化 docker 时

我收到了这个错误

[root@centos7 centos]# docker-compose up airflow-init
Creating network "centos_default" with the default driver
Creating volume "centos_postgres-db-volume" with default driver
Creating centos_redis_1    ... done
Creating centos_postgres_1 ... done
Creating centos_airflow-init_1 ... done
Attaching to centos_airflow-init_1
airflow-init_1       | BACKEND=postgresql+psycopg2
airflow-init_1       | DB_HOST=postgres
airflow-init_1       | DB_PORT=5432
airflow-init_1       |
airflow-init_1       | Traceback (most recent call last):
airflow-init_1       |   File "/home/airflow/.local/bin/airflow", line 5, in <module>
airflow-init_1       |     from airflow.__main__ import main
airflow-init_1       | ModuleNotFoundError: No module named 'airflow'
airflow-init_1       | Traceback (most recent call last):
airflow-init_1       |   File "/home/airflow/.local/bin/airflow", line 5, in <module>
airflow-init_1       |     from airflow.__main__ import main
airflow-init_1       | ModuleNotFoundError: No module named 'airflow'
airflow-init_1       | Traceback (most recent call last):
airflow-init_1       |   File "/home/airflow/.local/bin/airflow", line 5, in <module>
airflow-init_1       |     from airflow.__main__ import main
airflow-init_1       | ModuleNotFoundError: No module named 'airflow'
airflow-init_1       | Traceback (most recent call last):
airflow-init_1       |   File "/home/airflow/.local/bin/airflow", line 5, in <module>
airflow-init_1       |     from airflow.__main__ import main
airflow-init_1       | ModuleNotFoundError: No module named 'airflow'
airflow-init_1       | Traceback (most recent call last):
airflow-init_1       |   File "/home/airflow/.local/bin/airflow", line 5, in <module>
airflow-init_1       |     from airflow.__main__ import main
airflow-init_1       | ModuleNotFoundError: No module named 'airflow'
centos_airflow-init_1 exited with code 1

我使用了这里的标准 YAML 文件:https://airflow.apache.org/docs/apache-airflow/2.0.1/docker-compose.yaml 我发现这是一个已知问题:https://github.com/apache/airflow/issues/14520 但我不明白如何解决这个问题。 有什么建议吗?

【问题讨论】:

    标签: docker-compose airflow


    【解决方案1】:

    我用这种方法解决了这个问题。

    使用非 root 用户登录。

    找到您的用户 ID:

    echo $UID
    

    创建 .env 文件并将这些行放入其中。将 4003 替换为您的用户 ID:

    AIRFLOW_UID=4003
    AIRFLOW_GID=0
    
    

    如果您还没有创建这些目录,请先创建这些目录并运行 docker-compose:

    sudo mkdir ./dags ./logs ./plugins
    sudo chmod 777 -R logs 
    sudo docker-compose up airflow-init
    sudo docker-compose up 
    
    

    【讨论】:

      【解决方案2】:

      如果AIRFLOW_GID 未在.env 文件中正确设置,则会发生这种情况。

      说明包括运行命令echo -e "AIRFLOW_UID=$(id -u)\nAIRFLOW_GID=0" &gt; .env。 要检查它是否按预期工作,请通过运行cat .env 查看.env 文件的内容。 您应该会看到如下所示的内容:

      AIRFLOW_UID=1000
      AIRFLOW_GID=0
      

      如果不这样做,您可能需要手动编辑 .env 文件以设置气流 uid 和 gid。

      【讨论】:

        【解决方案3】:

        我发现了问题。 2.0.1 版有一个错误,不允许您使用 root 运行气流容器。 您必须使用另一个用户名(使用 sudo)运行安装。

        【讨论】:

        • 你能扩展一下吗?我看到了这个错误并且没有以 root 身份运行。
        猜你喜欢
        • 2020-11-30
        • 2021-03-24
        • 1970-01-01
        • 2021-02-27
        • 2022-01-18
        • 2017-01-29
        • 1970-01-01
        • 1970-01-01
        • 2021-04-01
        相关资源
        最近更新 更多