Streamlit/이론

184. [Streamlit] requirements.txt 생성 및 설치 방법

천재단미 2025. 3. 30. 18:02
728x90
반응형

 

 

 

 

Streamlit 프로젝트를 관리할 때, requirements.txt 파일은 필수입니다. 이 파일은 프로젝트에 필요한 파이썬 패키지 목록과 버전 정보를 기록하여, 언제 어디서나 동일한 환경을 재현할 수 있게 도와줍니다. 이번 포스팅에서는 Streamlit 프로젝트를 위한 requirements.txt 파일을 생성하고 설치하는 방법을 단계별로 정리하겠습니다.

 


1. requirements.txt란?

  • 의미: 프로젝트에 필요한 모든 파이썬 패키지와 버전을 나열한 텍스트 파일
  • 목적:
    • 다른 개발자나 서버에 동일한 환경을 쉽게 복제
    • CI/CD, 배포 파이프라인에서 자동으로 의존성 설치
    • 버전 충돌 방지 및 유지보수 용이

2. 가상환경 생성하기

먼저, 프로젝트 전용 가상환경(venv 또는 conda)을 생성하고 활성화합니다. 예시에서는 venv를 사용합니다.

# 프로젝트 폴더로 이동
$ cd my_streamlit_app

# 가상환경 생성 (venv 사용)
$ python3 -m venv .venv

# 활성화 (macOS/Linux)
$ source .venv/bin/activate

# 활성화 (Windows PowerShell)
> .venv\\Scripts\\Activate.ps1

가상환경이 활성화되면 프롬프트에 (.venv)가 붙습니다.


3. requirements.txt 파일 자동 생성

이미 가상환경에 필요한 패키지들을 설치했다면, pip freeze 명령어로 현재 환경의 패키지 목록을 추출할 수 있습니다.

# 예: Streamlit과 기타 패키지 설치
(.venv) $ pip install streamlit pandas matplotlib

# 현재 환경의 모든 패키지를 requirements.txt로 저장
(.venv) $ pip freeze > requirements.txt

이제 프로젝트 루트에 requirements.txt 파일이 생성됩니다. 열어보면 다음과 같은 형태입니다:

altair==4.2.0
matplotlib==3.7.1
pandas==2.1.1
streamlit==1.25.0
...


4. requirements.txt 파일 수동 작성

간혹 불필요한 패키지를 제외하고 필수 패키지만 직접 관리하고 싶을 때는, 간단히 텍스트 에디터로 파일을 작성할 수 있습니다.

# requirements.txt 예시
streamlit==1.25.0
pandas>=2.0.0
matplotlib

  • 버전을 고정하려면 ==
  • 최소 버전만 지정하려면 >=
  • 버전 미지정 시 최신 버전 설치

5. requirements.txt로 패키지 설치하기

다른 환경(동료의 컴퓨터, 서버, CI 등)에서 동일한 의존성을 설치하려면 다음 명령어를 사용합니다.

# 가상환경 활성화 후
(.venv) $ pip install -r requirements.txt

  • r 옵션으로 파일 안의 패키지를 순차 설치
  • 설치 로그를 확인하며 버전 충돌 여부 점검

6. 팁 & 주의사항

  • 가상환경 활용: 프로젝트별로 독립된 가상환경을 사용해야 패키지 충돌을 방지할 수 있습니다.
  • 버전 고정: 프로덕션 환경에서는 주요 패키지 버전을 ==로 고정하는 것이 안전합니다.
  • 불필요 패키지 정리: pip-autoremove 등을 이용해 사용하지 않는 패키지를 제거하고, pip freeze를 다시 생성하세요.
  • 요구사항 분리: 개발용 요구사항(requirements-dev.txt)과 프로덕션 요구사항(requirements.txt)을 분리 관리하면 CI 환경 구성 시 유리합니다.

7. 마무리

이번 포스팅에서는 Streamlit 프로젝트를 위한 requirements.txt 파일의 생성 및 설치 방법을 실습해보았습니다.

정확한 의존성 관리는 협업과 배포의 신뢰성을 높여주며, 유지보수도 한층 수월해집니다.

Streamlit으로 멋진 대시보드나 웹앱을 만들 때, 꼭 가상환경과 요구사항 파일을 함께 관리해 보세요!

다음 글 예고

  • Docker로 Streamlit 앱 컨테이너화하기
  • Github Actions로 자동 배포 파이프라인 만들기
728x90
반응형
home top bottom
}