본문 바로가기
ERROR

[ERROR] ImportError: cannot import name 'AWSAthenaOperator'

by DenverAlmighty 2022. 11. 20.
반응형
ImportError: cannot import name 'AWSAthenaOperator' from 'airflow.providers.amazon.aws.operators.athena' (/home/airflow/.local/lib/python3.7/site-packages/airflow/providers/amazon/aws/operators/athena.py)

패키지를 찾을 수 없다는 오류이다.
pip로 패키지를 설치하면 되지만 docker로 airflow를 실행하기 때문에 그냥 설치하면 안된다.

pip install apache-airflow-providers-amazon

Apache Airflow Docs
https://airflow.apache.org/docs/apache-airflow-providers-amazon/stable/index.html

Docker Airflow 에 Python 패키지 설치하기

1. docker-compose.yaml 이 있는 디렉토리로 이동

cd {my/airflow/dir}

2. requirements.txt 생성

vi requirements.txt

필요한 패키지 이름, 버전 입력

apache-airflow-providers-amazon==6.1.0

3. Dockerfile 생성

vi Dockerfile

아래 내용 입력 {AIRFLOW_VERSION} 은 사용중인 airflow 버전으로 대치

FROM apache/airflow:{AIRFLOW_VERSION}
COPY requirements.txt /requirements.txt
RUN pip install --user --upgrade pip
RUN pip install --no-cache-dir --user -r /requirements.txt

 

4. Airflow 이미지 빌드

docker build . --tag pyrequire_airflow:{AIRFLOW_VERSION}

5. docker-compose.yml 수정

vi docker-compose.yml

변경 전
image: ${AIRFLOW_IMAGE_NAME:-apache/airflow:{AIRFLOW_VERSION}}

변경 후
image: ${AIRFLOW_IMAGE_NAME:-pyrequire_airflow(4번에 사용한 이름):{AIRFLOW_VERSION}}


예)
image: ${AIRFLOW_IMAGE_NAME:-apache/airflow:2.3.4} ->
image: ${AIRFLOW_IMAGE_NAME:-pyrequire_airflow:2.3.4}

728x90
반응형