olrlobt

[Error] AWS tensorflow==2.11.*, tensorflow-intel==2.11.* 의존성 설치 에러 본문

Error

[Error] AWS tensorflow==2.11.*, tensorflow-intel==2.11.* 의존성 설치 에러

olrlobt 2024. 3. 31. 00:56

 

Fast API를 EC2에 배포하려 Docker 이미지를 빌드하는 도중 아래와 같은 에러가 발생했다.

tensorflow-intel==2.11.* 버전을 못 찾는 에러

 

 

수정전 내가 작성한 Dockerfile은 아래와 같다.

FROM python:3.9

WORKDIR /app

COPY requirements.txt .

RUN pip install --no-cache-dir -r requirements.txt

COPY . .

CMD ["uvicorn", "main:app", "--host", "0.0.0.0", "--port", "8000"]

 

 

 

TensorFlow는 Python 3.6~3.9에서 지원하기 때문에, 파이썬을 다운그레이드해 주었고, Fast API 프로젝트의 의존성을 requirements.txt로 작성하여 Dockerfile에서 pip install을 해 주는 과정이었다.

 

이때 requirements.txt 안에 의존성에는 tensorflow 관련 의존성들의 버전이 설정되어 있었는데, 이 부분을 설치해 주는 과정에서 버전에 따른 오류가 발생했다.

 

requirements.txt안에 있는 tensorflow 의존성

 

여러 가지 해결 방법을 검색해 보고 적용한 결과,

Thensorflow를 Dockerfile 내에서 환경과 버전에 맞게 직접 설치를 해주는 방법으로 해결하였다.

 

 

1. Tensorflow 공식 사이트에서 사용 버전과 환경에 맞는 Pacakage Location을 찾는다.

https://www.tensorflow.org/install/pip#software_requirements

 

pip로 TensorFlow 설치

이 페이지는 Cloud Translation API를 통해 번역되었습니다. pip로 TensorFlow 설치 컬렉션을 사용해 정리하기 내 환경설정을 기준으로 콘텐츠를 저장하고 분류하세요. 이 가이드는 TensorFlow의 최신 안정

www.tensorflow.org

 

 

 

tensorflow공식 사이트 pacakge location

 

나는 Python 3.9 버전의 CPU-only를 사용했다.

 

2. Dockerfile 수정

FROM python:3.9

WORKDIR /app

# 필요한 경우 wget 설치
RUN apt-get update && apt-get install -y wget && rm -rf /var/lib/apt/lists/*

# TensorFlow .whl 파일 다운로드 및 설치
RUN wget https://storage.googleapis.com/tensorflow/linux/cpu/tensorflow_cpu-2.15.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
RUN pip install --no-cache-dir tensorflow_cpu-2.15.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

# 필요한 경우 나머지 의존성 설치
COPY requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt

COPY . .

CMD ["uvicorn", "main:app", "--host", "0.0.0.0", "--port", "8000"]

 

 

3. requirements.txt 안에 의존성에는 tensorflow 관련 의존성 삭제

직접 다운로드를 해 주었기 때문에 별도로 tensorflow의 의존성을 설치할 필요 없다.

 

 

Comments