Error Handling

146. [Error Handling] [Streamlit] : requirements.txt(프로젝트 필수 패키지)

천재단미 2025. 2. 4. 14:03
728x90
반응형

 

 

 

 

Error Code

오류 원인 

 

  • seaborn 라이브러리가 설치되지 않음
    • seaborn은 데이터 시각화를 위한 Python 라이브러리로, 현재 환경에 설치되지 않은 상태입니다.
  • requirements.txt에 seaborn이 누락
    • Streamlit Cloud와 같은 환경에서는 requirements.txt 파일에 필요한 패키지를 명시해야 합니다.
    • requirements.txt 파일이 없거나, seaborn 패키지가 포함되지 않은 경우 발생할 수 있습니다.

 

 

 

 

오류 해결 방법

 

Python 프로젝트를 진행하다 보면 여러 패키지를 설치하게 됩니다. 이때, 프로젝트에 필요한 패키지를 명시적으로 관리하고, 팀원들과 동일한 환경을 유지하기 위해 사용하는 파일이 바로 **requirements.txt**입니다. 이번 글에서는 requirements.txt의 개념과 작성법, 활용 방법에 대해 알아보겠습니다.

 

1. requirements.txt란?

requirements.txt는 Python 프로젝트에서 필수 패키지 목록버전 정보를 저장하는 텍스트 파일입니다. 이를 통해 프로젝트에 필요한 환경을 쉽게 재현할 수 있습니다.

 

 

 

✅ 주요 역할

  • 프로젝트의 의존성을 명확히 관리
  • 팀 프로젝트에서 동일한 개발 환경 유지
  • 배포 및 서버 환경 설정을 간소화

2. requirements.txt 작성법

기본 형식

패키지이름==버전

 

예시:

numpy==1.23.5
pandas>=1.3.0  # 최소 1.3.0 이상
streamlit~=1.10  # 1.10.x 버전

📋 유용한 버전 지정 방법

  1. ==: 특정 버전 고정
    • 예: numpy==1.23.5
  2. >=: 최소 버전 지정
    • 예: pandas>=1.3.0
  3. ~=: 특정 주 버전에 대해 호환되는 모든 하위 버전 허용
    • 예: streamlit~=1.10 (1.10.x 버전만 허용)

3. requirements.txt 작성하기

방법 1️⃣: 직접 작성

아래와 같은 기본 패키지와 프로젝트에 필요한 추가 패키지를 직접 작성합니다.

# 기본 데이터 분석 및 시각화 패키지
numpy
pandas
matplotlib
seaborn

# Streamlit 및 UI 관련
streamlit
streamlit-option-menu

# 머신러닝 관련
scikit-learn
joblib

# 파일 처리 및 이미지
openpyxl  # Excel 파일 읽기/쓰기
pillow  # 이미지 처리

# 기타
requests

방법 2️⃣: 설치된 패키지로 자동 생성

현재 Python 환경에 설치된 모든 패키지를 기반으로 requirements.txt를 생성하려면, 아래 명령어를 사용합니다.

pip freeze > requirements.txt

생성된 requirements.txt 예제:

numpy==1.23.5
pandas==1.4.4
matplotlib==3.6.2
seaborn==0.12.1
streamlit==1.14.0
streamlit-option-menu==0.3.2
scikit-learn==1.1.3
joblib==1.2.0
openpyxl==3.0.10
pillow==9.3.0
requests==2.28.1


4. requirements.txt 활용법

📥 패키지 설치

다른 개발자가 동일한 환경을 재현하려면, requirements.txt를 사용하여 필요한 패키지를 한 번에 설치할 수 있습니다.

pip install -r requirements.txt

📤 패키지 목록 업데이트

프로젝트 진행 중 패키지를 추가로 설치하거나 업데이트한 경우, pip freeze를 사용해 requirements.txt를 최신 상태로 업데이트합니다.

pip freeze > requirements.txt


5. requirements.txt 예제

아래는 Streamlit을 활용한 머신러닝 및 데이터 분석 프로젝트를 위한 requirements.txt 예제입니다.

# 기본 데이터 분석 라이브러리
numpy
pandas
matplotlib
seaborn

# Streamlit 및 추가 UI 관련
streamlit
streamlit-option-menu

# 머신러닝 관련 라이브러리
scikit-learn
joblib

# 파일 처리
openpyxl  # Excel 데이터 읽기/쓰기
pillow  # 이미지 처리

# 기타 네트워크 요청
requests


6. requirements.txt 작성 시 주의할 점

  1. 불필요한 패키지 제외
    • 모든 설치된 패키지를 포함하기보다는, 프로젝트에서 실제로 사용하는 패키지만 추가합니다.
  2. 버전 관리 중요
    • 동일한 환경을 유지하기 위해 버전을 명시하는 것이 좋습니다.
  3. 가상 환경 사용 권장
    • 프로젝트별로 의존성을 관리하기 위해 가상 환경(venv나 conda)을 사용하는 것을 추천합니다.

7. 추가 팁: pipreqs로 자동 생성

pipreqs는 프로젝트 코드에서 사용된 패키지만 분석하여 requirements.txt를 생성하는 유용한 툴입니다.

설치:

pip install pipreqs

사용:

pipreqs /path/to/your/project

 

이 명령어는 /path/to/your/project 경로에서 실제 사용된 패키지를 기반으로 requirements.txt를 생성합니다.


8. 마무리

requirements.txt는 Python 프로젝트에서 필수적인 파일입니다. 이를 활용하면 프로젝트 환경을 쉽게 공유하고 관리할 수 있습니다. 위 내용을 참고하여 여러분의 프로젝트에 적합한 requirements.txt를 작성해보세요!

728x90
반응형
home top bottom
}