λ³Έλ¬Έ λ°”λ‘œκ°€κΈ°

Category/Note

파이썬 ν”„λ‘œμ νŠΈ 쒅속성 κ΄€λ¦¬ν•˜κΈ° requirements.txt

728x90

πŸ“¦ ν”„λ‘œμ νŠΈ 쒅속성 관리: requirements.txt

requirements.txtλŠ” Python ν”„λ‘œμ νŠΈμ—μ„œ μ‚¬μš©ν•˜λŠ” νŒ¨ν‚€μ§€μ™€ ν•΄λ‹Ή 버전을 κΈ°λ‘ν•œ ν…μŠ€νŠΈ 파일둜, ν”„λ‘œμ νŠΈ 쒅속성을 κ΄€λ¦¬ν•˜λŠ” 데 μ‚¬μš©λ©λ‹ˆλ‹€. 이λ₯Ό 톡해 νŒ€μ›λ“€μ΄λ‚˜ λ‹€λ₯Έ μ‚¬μš©μžλ“€μ΄ λ™μΌν•œ ν™˜κ²½μ—μ„œ μž‘μ—…ν•  수 μžˆλ„λ‘ 보μž₯ν•©λ‹ˆλ‹€.

βœ… requirements.txt의 λͺ©μ 

  • ν”„λ‘œμ νŠΈ ν™˜κ²½ μž¬ν˜„: λ™μΌν•œ λ²„μ „μ˜ νŒ¨ν‚€μ§€λ₯Ό μ„€μΉ˜ν•˜μ—¬ 개발 ν™˜κ²½μ„ μž¬ν˜„ κ°€λŠ₯.
  • 쒅속성 관리: ν”„λ‘œμ νŠΈμ—μ„œ μ‚¬μš©λ˜λŠ” νŒ¨ν‚€μ§€λ₯Ό λͺ…ν™•νžˆ μ •μ˜ν•˜μ—¬, λΆˆν•„μš”ν•œ νŒ¨ν‚€μ§€λ₯Ό 쀄이고 버전 좩돌 λ°©μ§€.
  • ν˜‘μ—… μš©μ΄μ„±: λ‹€λ₯Έ νŒ€μ›μ΄ νŒŒμΌμ„ 기반으둜 λ™μΌν•œ νŒ¨ν‚€μ§€ ν™˜κ²½μ„ μ‰½κ²Œ μ„€μ •.

πŸ“‹ requirements.txt 파일 μž‘μ„±ν•˜κΈ°

1. ν˜„μž¬ ν™˜κ²½μ—μ„œ μ‚¬μš© 쀑인 νŒ¨ν‚€μ§€ μ €μž₯

pip freeze > requirements.txt
  • pip freezeλŠ” ν˜„μž¬ Python ν™˜κ²½μ— μ„€μΉ˜λœ λͺ¨λ“  νŒ¨ν‚€μ§€λ₯Ό λ‚˜μ—΄ν•©λ‹ˆλ‹€.
  • >λ₯Ό μ‚¬μš©ν•˜μ—¬ 좜λ ₯을 requirements.txt νŒŒμΌμ— μ €μž₯ν•©λ‹ˆλ‹€.

μ˜ˆμ‹œ: μƒμ„±λœ requirements.txt

numpy==1.21.2
pandas>=1.3.0
requests==2.26.0
Flask==2.1.1
  • numpy==1.21.2: numpy의 1.21.2 버전 μ„€μΉ˜.
  • pandas>=1.3.0: pandas의 1.3.0 μ΄μƒμ˜ 버전 μ„€μΉ˜.
  • requests: μ΅œμ‹  버전 μ„€μΉ˜.

2. μˆ˜λ™μœΌλ‘œ 쒅속성 μΆ”κ°€

  • νŠΉμ • νŒ¨ν‚€μ§€μ™€ 버전을 직접 μΆ”κ°€ν•  μˆ˜λ„ μžˆμŠ΅λ‹ˆλ‹€.
  • 예:
django==4.1.1
djangorestframework==3.13.1

πŸš€ requirements.txt둜 νŒ¨ν‚€μ§€ μ„€μΉ˜ν•˜κΈ°

λ‹€λ₯Έ μ‚¬μš©μžλ‚˜ νŒ€μ›μ΄ ν”„λ‘œμ νŠΈ ν™˜κ²½μ„ μ„€μ •ν•  λ•Œ, requirements.txtλ₯Ό 기반으둜 λͺ¨λ“  νŒ¨ν‚€μ§€λ₯Ό μ„€μΉ˜ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

1. νŒ¨ν‚€μ§€ μ„€μΉ˜ λͺ…λ Ή

pip install -r requirements.txt

2. 가상 ν™˜κ²½μ—μ„œ μ„€μΉ˜ (ꢌμž₯)

  • ν”„λ‘œμ νŠΈλ§ˆλ‹€ λ…λ¦½λœ ν™˜κ²½μ„ μœ μ§€ν•˜κΈ° μœ„ν•΄ 가상 ν™˜κ²½ μ‚¬μš©μ΄ ꢌμž₯λ©λ‹ˆλ‹€:
python -m venv venv
source venv/bin/activate      # macOS/Linux
venv\Scripts\activate         # Windows
pip install -r requirements.txt

3. μ—…κ·Έλ ˆμ΄λ“œ μ˜΅μ…˜ μ‚¬μš©

  • νŒ¨ν‚€μ§€λ₯Ό μ΅œμ‹  λ²„μ „μœΌλ‘œ μ—…κ·Έλ ˆμ΄λ“œν•˜λ©΄μ„œ μ„€μΉ˜ν•˜λ €λ©΄:
pip install --upgrade -r requirements.txt

🌟 requirements.txt 관리 팁

1. μ΅œμ‹  μƒνƒœ μœ μ§€

  • μƒˆλ‘œμš΄ νŒ¨ν‚€μ§€λ₯Ό μ„€μΉ˜ν•˜κ±°λ‚˜ μ—…κ·Έλ ˆμ΄λ“œν•œ 경우, νŒŒμΌμ„ μ—…λ°μ΄νŠΈν•©λ‹ˆλ‹€:
pip freeze > requirements.txt

2. 쒅속성 확인

  • ν”„λ‘œμ νŠΈμ— λΆˆν•„μš”ν•œ νŒ¨ν‚€μ§€κ°€ ν¬ν•¨λ˜μ§€ μ•Šλ„λ‘ 주기적으둜 μ κ²€ν•˜μ„Έμš”.

3. μ˜μ‘΄μ„± 뢄리

  • 개발 쒅속성(예: pytest, black)κ³Ό ν”„λ‘œλ•μ…˜ 쒅속성(예: Flask, Django)을 λ‚˜λˆ„κΈ° μœ„ν•΄ μΆ”κ°€ 파일 μ‚¬μš©:
    • requirements-dev.txt (개발 ν™˜κ²½μš©)
    • requirements.txt (ν”„λ‘œλ•μ…˜μš©)

🎯 μš”μ•½

  • requirements.txtλŠ” Python ν”„λ‘œμ νŠΈμ˜ 쒅속성을 κ΄€λ¦¬ν•˜κ³  ν˜‘μ—…μ„ μœ„ν•œ ν‘œμ€€ ν™˜κ²½μ„ μ œκ³΅ν•©λ‹ˆλ‹€.
  • pip freeze λͺ…λ ΉμœΌλ‘œ ν˜„μž¬ ν™˜κ²½μ—μ„œ μ‚¬μš©ν•œ νŒ¨ν‚€μ§€λ₯Ό μ €μž₯ν•˜κ³ , 이λ₯Ό 톡해 λ‹€λ₯Έ νŒ€μ›λ„ λ™μΌν•œ ν™˜κ²½μ„ μ„€μ •ν•  수 μžˆμŠ΅λ‹ˆλ‹€.
  • 가상 ν™˜κ²½κ³Ό ν•¨κ»˜ μ‚¬μš©ν•˜λ©΄ λ”μš± μ•ˆμ „ν•˜κ³  κΉ”λ”ν•œ ν”„λ‘œμ νŠΈ 관리가 κ°€λŠ₯ν•©λ‹ˆλ‹€.
728x90