๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
Python

[Colab] Colab์—์„œ `requirements.txt` ์ƒ์„ฑํ•˜๋Š” ์ด์œ 

by clolee 2025. 4. 17.

๐Ÿ“ฆ Colab์—์„œ requirements.txt ์ƒ์„ฑํ•˜๋Š” ์ด์œ 

โ“ ์™œ requirements.txt๋ฅผ ๋งŒ๋“ค๊นŒ?

  • ํ˜„์žฌ ํ™˜๊ฒฝ์— ์„ค์น˜๋œ ํŒจํ‚ค์ง€ ๋ชฉ๋ก๊ณผ ๋ฒ„์ „ ์ •๋ณด๋ฅผ ๊ธฐ๋ก
  • ๋‹ค๋ฅธ ํ™˜๊ฒฝ(๊ฐœ๋ฐœ/๋ฐฐํฌ/ํ˜‘์—…/์„œ๋ฒ„ ๋“ฑ)์—์„œ ๋™์ผํ•œ ํŒจํ‚ค์ง€ ๋ฒ„์ „์œผ๋กœ ์žฌ์„ค์น˜ํ•˜๊ธฐ ์œ„ํ•ด
  • ํŠนํžˆ Colab์ฒ˜๋Ÿผ ์„ธ์…˜์ด ์ดˆ๊ธฐํ™”๋˜๋Š” ํ™˜๊ฒฝ์—์„œ๋Š” ํ•„์ˆ˜

โœ… 1. pip freeze ๋ช…๋ น์–ด (๊ฐ€์žฅ ์ผ๋ฐ˜์ )


  
!pip freeze > requirements.txt
  • ํ˜„์žฌ Colab ์„ธ์…˜์— ์„ค์น˜๋œ ๋ชจ๋“  ํŒจํ‚ค์ง€์™€ ๋ฒ„์ „์„ ํ…์ŠคํŠธ๋กœ ์ €์žฅ
  • pip install -r requirements.txt๋กœ ์žฌ์„ค์น˜ ๊ฐ€๋Šฅ
  • ๋ถˆํ•„์š”ํ•œ ๊ธฐ๋ณธ ํŒจํ‚ค์ง€๊นŒ์ง€ ํฌํ•จ๋จ (์ •์ œํ•˜๋ ค๋ฉด ์ˆ˜๋™ ํŽธ์ง‘ ํ•„์š”)

๐Ÿ“‚ ์ƒ์„ฑ ์˜ˆ์‹œ:


  
pandas==2.2.2
sqlalchemy==2.0.31
mysql-connector-python==9.0.0
oracledb==1.4.0

โœ… 2. pkg_resources๋ฅผ ์ด์šฉํ•œ ํŒŒ์ด์ฌ ์ฝ”๋“œ ์ถ”์ถœ


  
import pkg_resources
with open("requirements.txt", "w") as f:
for dist in pkg_resources.working_set:
f.write(f"{dist.project_name}=={dist.version}\n")
  • pip freeze์ฒ˜๋Ÿผ ์ „์ฒด ํŒจํ‚ค์ง€๋ฅผ ์ถ”์ถœ
  • ํŒŒ์ด์ฌ ์ฝ”๋“œ ์•ˆ์—์„œ ์ œ์–ด ๊ฐ€๋Šฅ (ํ•„ํ„ฐ๋ง, ํŠน์ • ํŒจํ‚ค์ง€๋งŒ ์ถ”์ถœ ๋“ฑ ์ปค์Šคํ„ฐ๋งˆ์ด์ง• ๊ฐ€๋Šฅ)
  • .project_name์€ ํŒจํ‚ค์ง€ ์ด๋ฆ„, .version์€ ๋ฒ„์ „

โœ… 3. pip list + ์ˆ˜์ž‘์—… (๋ถ€๋ถ„ ์ถ”์ถœ ์‹œ ์œ ์šฉ)


  
!pip list
  • ์„ค์น˜๋œ ํŒจํ‚ค์ง€ ๋ฆฌ์ŠคํŠธ๋ฅผ ์ถœ๋ ฅ๋งŒ ํ•จ
  • ์ง์ ‘ ๋ณด๊ณ  ํ•„์š”ํ•œ ํŒจํ‚ค์ง€๋งŒ ๊ณจ๋ผ requirements.txt์— ์ ์„ ์ˆ˜ ์žˆ์Œ

โœ… 4. ์ˆ˜๋™ ์ž‘์„ฑ (์ฝ”๋“œ์—์„œ ํŒจํ‚ค์ง€ ๋ฆฌ์ŠคํŠธ ๋ณต์‚ฌ)


  
required = [
"pandas==2.2.2",
"sqlalchemy==2.0.31",
"mysql-connector-python==9.0.0"
]
with open("requirements.txt", "w") as f:
f.write("\n".join(required))
  • ๋‚ด ํ”„๋กœ์ ํŠธ์— ํ•„์š”ํ•œ ํŒจํ‚ค์ง€๋งŒ ์„ ํƒ์ ์œผ๋กœ ๋ช…์‹œ
  • ์ฝ”๋“œ ์•ˆ์—์„œ ๋ช…ํ™•ํ•˜๊ฒŒ ๊ด€๋ฆฌ ๊ฐ€๋Šฅ
  • ์‹คํ—˜/ํ•™์Šต์šฉ ํ”„๋กœ์ ํŠธ์— ๋งŽ์ด ์“ฐ์ž„

โœ… 5. %pip freeze (IPython ๋งค์ง ๋ช…๋ น์–ด)


  
%pip freeze > requirements.txt
  • Colab์—์„œ๋„ ์ž˜ ์ž‘๋™
  • !pip freeze์™€ ๊ฑฐ์˜ ๋™์ผํ•˜์ง€๋งŒ, ์„ธ์…˜ ๋‚ด๋ถ€ ํ™˜๊ฒฝ๊ณผ ๋” ์•ˆ์ •์ ์œผ๋กœ ์—ฐ๊ฒฐ

๐ŸŽฏ ์š”์•ฝ ๋น„๊ต

๋ฐฉ์‹ ๋ชฉ์ /ํŠน์ง• ์žฅ์  ๋‹จ์ 
!pip freeze ์ „์ฒด ํŒจํ‚ค์ง€ ์ถ”์ถœ ์‰ฝ๊ณ  ๋น ๋ฆ„ ๋ถˆํ•„์š”ํ•œ ํŒจํ‚ค์ง€๋„ ๋งŽ์Œ
pkg_resources ์ฝ”๋“œ๋กœ ์ œ์–ด ํ•„ํ„ฐ๋ง ๋“ฑ ์ปค์Šคํ„ฐ๋งˆ์ด์ง• ๊ฐ€๋Šฅ ๋ณต์žกํ•จ
!pip list ํ™•์ธ์šฉ ํ•„์š”ํ•œ ํŒจํ‚ค์ง€ ์ˆ˜๋™ ์„ ํƒ ์ˆ˜๋™ ์ž‘์—… ํ•„์š”
์ˆ˜๋™ ๋ฆฌ์ŠคํŠธ ์ž‘์„ฑ ํ•„์š”ํ•œ ํŒจํ‚ค์ง€๋งŒ ๊น”๋”ํ•˜๊ณ  ๋ช…ํ™• ์ž๋™ํ™” ์•ˆ ๋จ
%pip freeze IPython ์ „์šฉ ๋‚ด๋ถ€ ํ™˜๊ฒฝ ์•ˆ์ •์  ์—ฐ๊ฒฐ ์ผ๋ฐ˜ Python์—์„  ์‚ฌ์šฉ ๋ถˆ๊ฐ€

๋Œ“๊ธ€