반응형
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
반응형