python - Docker 上的 Airflow 出现错误 "ModuleNotFoundError: No module named ' google' "

标签 python docker google-cloud-platform airflow

我正在尝试在 Docker 上使用 Airflow 。 dags 目录中的 my_python.py 文件,如:

from airflow import DAG
from airflow.operators.python import PythonOperator
from datetime import datetime, timedelta
import argparse
import psycopg2
import csv
import os
import sys
from datetime import datetime
from google.cloud import bigquery
from google.oauth2 import service_account

def postgresql_database_connection(table_name, data_file):
...

def write_to_bigquery(dataset_name, table_name, data_file):
...

dag = DAG('my_python',
          default_args=default_args,
          schedule_interval='00-59/30 * * * *',
          catchup=False,
          max_active_runs=1)

task1 = PythonOperator(
    task_id='table_database_connection',
    python_callable=postgresql_database_connection,
    op_args=[TABLE_NAME,DATA_FILE],
    dag=dag)

task2 = PythonOperator(
    task_id='table_write_to_bigquery',
    python_callable=write_to_bigquery,
    op_args=[DATASET_NAME,TABLE_NAME,DATA_FILE,args.env],
    dag=dag)

task1 >> task2

我的 .dockerfile 像:

FROM python:3.7

ARG AIRFLOW_USER_HOME=/usr/local/airflow

ENV AIRFLOW_HOME=${AIRFLOW_USER_HOME}

RUN ...
    && pip install apache-airflow==2.0.0 \
    && pip install psycopg2-binary \
    && pip install google-cloud \
    && pip install google-oauth

EXPOSE 8080 8793

USER airflow
WORKDIR ${AIRFLOW_USER_HOME}

我在 airflow 网络服务器上遇到错误: enter image description here

文件夹路径:

-标签: --my_python.py

- Airflow 测试.Dockerfile
-docker-compose.yaml

我错在哪里?是 python 还是 airflow 版本问题,还是我的 dockerfile 问题?

最佳答案

该错误与您的环境中缺少包有关。

如 @neilharia7 所述,您可以使用 pip install apache-airflow-providers-google[amazon]

关于python - Docker 上的 Airflow 出现错误 "ModuleNotFoundError: No module named ' google' ",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66169275/

相关文章:

docker - 如何控制 docker-compose 构建顺序?

docker - docker :来自守护程序的错误响应:驱动程序无法对端点Web上的外部连接进行编程:启动userland代理时出错:监听tcp 0.0.0

python - 在 python docker 镜像上安装 simstring (SWIG)

swift - 需要在一系列的 getDocument 价格查找之后获取购物车总和

node.js - 云函数 : how to upload additional file for use in code?

Python读取Windows命令行输出

python - 为什么 numpy.random.dirichlet() 不接受多维数组?

python - 如何使用python从音频wav文件获取rms?

python - 从嵌套列表 Python 中删除项目

python - 如何为 python 配置谷歌云平台数据丢失预防客户端库以在 SSL 代理后面工作?