🧩

022 freeze

Β 
μ΄λ²ˆμ—λŠ” freezeλ₯Ό ν•  κ²ƒμž…λ‹ˆλ‹€. κ°„λ‹¨ν•˜μ§€λ§Œ 정말 μ€‘μš”ν•œ λ‚΄μš©μž…λ‹ˆλ‹€.
Β 
κ°€μƒν™˜κ²½μ— μ§„μž…ν•œ μƒνƒœμ—μ„œ pip list λͺ…λ Ήμ–΄λ₯Ό μˆ˜ν–‰ν•©λ‹ˆλ‹€.
(venv)root@goorm:/workspace/instaclone/instaclone# pip list
Β 
notion imagenotion image
Β 
μš°λ¦¬κ°€ μ„€μΉ˜ν–ˆλ˜ νŒ¨ν‚€μ§€λ“€μ˜ λ¦¬μŠ€νŠΈμž…λ‹ˆλ‹€. νŒ¨ν‚€μ§€ μ˜†μ— 버전도 같이 좜λ ₯λ©λ‹ˆλ‹€. 이 버전이 맞기 λ•Œλ¬Έμ— μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ΄ 잘 μž‘λ™ν•˜λŠ” κ²ƒμž…λ‹ˆλ‹€. 버전이 λ‹€λ₯΄κ²Œ 되면 그에 λ§žλŠ” 문법을 μ‚¬μš©ν•΄μ•Όλ˜κ³  그렇지 μ•ŠμœΌλ©΄ μž‘λ™μ΄ μ•ˆν•˜λŠ” κ²½μš°κ°€ μžˆμŠ΅λ‹ˆλ‹€.
Β 
λ§Œμ•½, λ‹€λ₯Έ κ°œλ°œμžκ°€ ν•΄λ‹Ή ν”„λ‘œμ νŠΈλ₯Ό μ‚¬μš©ν•˜κ³ μž ν•œλ‹€λ©΄ 이 νŒ¨ν‚€μ§€λ“€μ„ μ„€μΉ˜ν•΄μ•Όν•©λ‹ˆλ‹€. 캑쳐λ₯Ό ν•˜μ…¨λ‹€κ°€ 버전에 맞게 μ„€μΉ˜λ₯Ό ν•˜λŠ” 것도 λ°©λ²•μ΄μ§€λ§Œ 맀우 λ²ˆκ±°λ‘­μŠ΅λ‹ˆλ‹€. pipλŠ” μ΄λŸ¬ν•œ νŒ¨ν‚€μ§€ 리슀트λ₯Ό 관리할 수 μžˆλŠ” 방법이 μžˆμŠ΅λ‹ˆλ‹€. freeze λΌλŠ” λͺ…λ Ήμ–΄λ₯Ό 톡해 νŒ¨ν‚€μ§€ 리슀트λ₯Ό κ΄€λ¦¬ν•˜λŠ” λ¬Έμ„œ requirements.txtλ₯Ό λ§Œλ“œλŠ” κ²ƒμž…λ‹ˆλ‹€.
(venv)root@goorm:/workspace/instaclone/instaclone# pip freeze > requirement.txt
Β 
ν˜„μž¬ 터미널 κ²½λ‘œμ— requirements.txt 파일이 생겼을 κ²ƒμž…λ‹ˆλ‹€. 확인해 보도둝 ν•˜κ² μŠ΅λ‹ˆλ‹€. requirement.txt 파일이 μƒμ„±λ˜μ—ˆμŠ΅λ‹ˆλ‹€. ν•œλ²ˆ 열어보도둝 ν•˜κ² μŠ΅λ‹ˆλ‹€. pip list ν–ˆμ„ λ•Œ λ‚˜μ˜€λŠ” νŒ¨ν‚€μ§€μ™€ 버전이 λ¬Έμ„œ μ•ˆμ— 정리가 λ˜λŠ” 것을 ν™•μΈν•˜μ‹€ 수 μžˆμŠ΅λ‹ˆλ‹€.
notion imagenotion image
Β 
이 λ¬Έμ„œλ₯Ό μ΄μš©ν•˜μ—¬ pip install -r requirements.txt λͺ…λ Ήμ–΄λ‘œ λ‹€λ₯Έ ν™˜κ²½μ— ν•΄λ‹Ή νŒ¨ν‚€μ§€λ“€μ„ ν•œλ²ˆμ— μ„€μΉ˜ν•  수 μžˆμŠ΅λ‹ˆλ‹€. ν•œλ²ˆ μž„μ‹œλ‘œ λ‹€λ₯Έ κ°€μƒν™˜κ²½μ„ λ§Œλ“€κ³  νŒ¨ν‚€μ§€λ“€μ„ μ„€μΉ˜ν•΄λ³΄κ² μŠ΅λ‹ˆλ‹€.
Β 
ν˜„μž¬ venv κ°€μƒν™˜κ²½μ— μžˆλ‹€λ©΄ deactivate λͺ…λ Ήμ–΄λ‘œ λΉ μ Έλ‚˜μ˜΅λ‹ˆλ‹€.
(venv)root@goorm:/workspace/instaclone/instaclone# deactivate
Β 
tempλΌλŠ” μ΄λ¦„μ˜ μž„μ‹œ κ°€μƒν™˜κ²½μ„ λ§Œλ“­λ‹ˆλ‹€.
root@goorm:/workspace/instaclone/instaclone# python -m venv temp
Β 
temp κ°€μƒν™˜κ²½μ— μ§„μž…ν•©λ‹ˆλ‹€.
root@goorm:/workspace/instaclone/instaclone# source temp/bin/activate
Β 
notion imagenotion image
Β 
pip list λͺ…λ Ήμ–΄λ₯Ό μˆ˜ν–‰ν•΄λ³΄λ©΄ νŒ¨ν‚€μ§€ λ¦¬μŠ€νŠΈκ°€ κΉ¨λ—ν•œ 것을 λ³Ό 수 μžˆμŠ΅λ‹ˆλ‹€. 이제 temp ν™˜κ²½μ— venv ν™˜κ²½μ˜ νŒ¨ν‚€μ§€λ“€μ„ μ„€μΉ˜ν•©λ‹ˆλ‹€. ν•œλ²ˆμ— λ§Žμ€ νŒ¨ν‚€μ§€λ“€μ„ μ„€μΉ˜ν•΄μ•Όν•˜κΈ° λ•Œλ¬Έμ— μ‹œκ°„μ΄ 많이 μ†Œμš”λ  수 μžˆμŠ΅λ‹ˆλ‹€.
(temp)root@goorm:/workspace/instaclone/instaclone# pip install -r requirements.txt
Β 
notion imagenotion image
Β 
μ„±κ³΅μ μœΌλ‘œ μ„€μΉ˜κ°€ λ˜μ—ˆλ‹€λŠ” λ©”μ‹œμ§€κ°€ 뜨면 λ‹€μ‹œ pip list λͺ…λ Ήμ–΄λ₯Ό 톡해 νŒ¨ν‚€μ§€λ“€μ΄ μ œλŒ€λ‘œ μ„€μΉ˜κ°€ λ˜μ—ˆλŠ”μ§€ ν™•μΈν•©λ‹ˆλ‹€.
notion imagenotion image
Β 
이둜써 temp ν™˜κ²½μ€ venv ν™˜κ²½κ³Ό λ˜‘κ°™μ€ 쑰건을 κ°–μΆ”μ—ˆμŠ΅λ‹ˆλ‹€. temp ν™˜κ²½μ—μ„œ μ„œλ²„λ₯Ό μ‹€ν–‰μ‹œμΌœλ³΄λ©΄ venv ν™˜κ²½μ—μ„œμ™€ λ˜‘κ°™μ΄ μž‘λ™ν•˜λŠ” 것을 확인할 수 μžˆμŠ΅λ‹ˆλ‹€.
(temp)root@goorm:/workspace/instaclone/instaclone# python manage.py runserver 0:80
Β 
μ΄λ ‡κ²Œ λ°±μ—”λ“œ λΆ€λΆ„κΉŒμ§€ 마무리 λ˜μ—ˆμŠ΅λ‹ˆλ‹€. μˆ˜κ³ ν•˜μ…¨μŠ΅λ‹ˆλ‹€.