[Conda] ν™œμš© κ°€μ΄λ“œ: 효율적인 ν™˜κ²½ 관리와 Jupyter Kernel μ„€μ •

Posted by Euisuk's Dev Log on March 6, 2024

[Conda] ν™œμš© κ°€μ΄λ“œ: 효율적인 ν™˜κ²½ 관리와 Jupyter Kernel μ„€μ •

원본 κ²Œμ‹œκΈ€: https://velog.io/@euisuk-chung/Conda-ν™œμš©-κ°€μ΄λ“œ-효율적인-ν™˜κ²½-관리와-Jupyter-Kernel-μ„€μ •

CondaλŠ” λ‹€μ–‘ν•œ ν”„λ‘œμ νŠΈμ— ν•„μš”ν•œ λ…λ¦½λœ ν™˜κ²½μ„ λ§Œλ“€κ³  관리할 수 μžˆλŠ” κ°•λ ₯ν•œ λ„κ΅¬μž…λ‹ˆλ‹€. 이 κΈ€μ—μ„œλŠ” Conda ν™˜κ²½ μ„€μ •, 관리, Jupyter Notebookμ—μ„œμ˜ ν™œμš©λ²• λ“± λͺ‡ κ°€μ§€ μœ μš©ν•œ Conda μ‚¬μš©λ²•μ„ μ†Œκ°œν•©λ‹ˆλ‹€. λ˜ν•œ, νŠΉμ • μƒν™©μ—μ„œ conda activate λŒ€μ‹  source activateλ₯Ό μ‚¬μš©ν•΄μ•Ό ν•˜λŠ” κ²½μš°μ™€ κ·Έ μ΄μœ μ— λŒ€ν•΄μ„œλ„ μ•Œμ•„λ³΄κ² μŠ΅λ‹ˆλ‹€.

Conda ν™˜κ²½ 관리

ν™˜κ²½ λͺ©λ‘ 확인

1
conda env list

이 λͺ…λ Ήμ–΄λŠ” μ„€μΉ˜λœ λͺ¨λ“  Conda ν™˜κ²½μ˜ λͺ©λ‘μ„ λ³΄μ—¬μ€λ‹ˆλ‹€. ν˜„μž¬ ν™œμ„±ν™”λœ ν™˜κ²½ μ˜†μ—λŠ” λ³„ν‘œ(*)κ°€ ν‘œμ‹œλ©λ‹ˆλ‹€.

μƒˆ ν™˜κ²½ 생성

1
conda create --name py39 python=3.9

이 λͺ…λ Ήμ–΄λŠ” Python 버전 3.9λ₯Ό ν¬ν•¨ν•œ μƒˆ Conda ν™˜κ²½ py39λ₯Ό μƒμ„±ν•©λ‹ˆλ‹€. ν•„μš”μ— 따라 λ‹€λ₯Έ νŒ¨ν‚€μ§€λ₯Ό ν•¨κ»˜ μ„€μΉ˜ν•  μˆ˜λ„ μžˆμŠ΅λ‹ˆλ‹€.

ν™˜κ²½ 제거

1
conda remove --name py39 --all

이 λͺ…λ Ήμ–΄λŠ” py39 ν™˜κ²½κ³Ό κ·Έ μ•ˆμ— μ„€μΉ˜λœ λͺ¨λ“  νŒ¨ν‚€μ§€λ₯Ό μ œκ±°ν•©λ‹ˆλ‹€.

ν™˜κ²½ 버전 확인 및 되돌리기

1
2
conda list --revisions
conda install --revision 2

이 λͺ…령어듀을 μ‚¬μš©ν•˜μ—¬ ν™˜κ²½μ˜ 이전 μƒνƒœλ‘œ λ‘€λ°±ν•  수 μžˆμŠ΅λ‹ˆλ‹€. conda list --revisionsλŠ” ν™˜κ²½μ˜ λ³€κ²½ 이λ ₯을 보여주며, conda install --revision 2λŠ” νŠΉμ • λ¦¬λΉ„μ „μœΌλ‘œ ν™˜κ²½μ„ λ˜λŒλ¦½λ‹ˆλ‹€.

Conda μΊμ‹œ μ²­μ†Œ

1
conda clean -a

이 λͺ…λ Ήμ–΄λŠ” Condaκ°€ λ‹€μš΄λ‘œλ“œν•œ νŒ¨ν‚€μ§€ 파일과 μΊμ‹œλ₯Ό μ •λ¦¬ν•˜μ—¬ λ””μŠ€ν¬ 곡간을 ν™•λ³΄ν•©λ‹ˆλ‹€.

Jupyter Kernel μ„€μ •

Jupyter Notebookμ—μ„œ Conda ν™˜κ²½μ„ Kernel둜 μ‚¬μš©ν•˜λ €λ©΄, ν•΄λ‹Ή ν™˜κ²½μ„ ν™œμ„±ν™”ν•œ ν›„ μ•„λž˜ 단계λ₯Ό λ”°λ₯΄λ©΄ λ©λ‹ˆλ‹€.

1
2
pip install ipykernel
python -m ipykernel install --user --name py39

이 과정을 톡해 Jupyter Notebookμ—μ„œ py39 ν™˜κ²½μ„ 선택할 수 μžˆλŠ” Kernel이 μΆ”κ°€λ©λ‹ˆλ‹€.

conda activateκ°€ μ•ˆλΌ?!

가끔은 conda activate λŒ€μ‹  source activate <ν™˜κ²½ 이름>을 μ‚¬μš©ν•΄μ•Ό ν•˜λŠ” κ²½μš°κ°€ μžˆμŠ΅λ‹ˆλ‹€. μ΄λŠ” 주둜 μ‰˜ ν™˜κ²½ 섀정이 Conda μ΄ˆκΈ°ν™” μŠ€ν¬λ¦½νŠΈμ™€ μ™„λ²½νžˆ ν†΅ν•©λ˜μ§€ μ•Šμ•˜μ„ λ•Œ λ°œμƒν•©λ‹ˆλ‹€. 예λ₯Ό λ“€μ–΄, Bash μ‰˜μ„ μ‚¬μš©ν•˜μ§€ μ•ŠλŠ” κ²½μš°λ‚˜, Conda μ„€μΉ˜ ν›„ μ‰˜ μ„€μ • 파일(.bashrc, .zshrc λ“±)이 μ—…λ°μ΄νŠΈλ˜μ§€ μ•Šμ•˜μ„ λ•Œ 이 λ¬Έμ œκ°€ λ°œμƒν•  수 μžˆμŠ΅λ‹ˆλ‹€. source activate λͺ…λ Ήμ–΄λŠ” Conda ν™˜κ²½μ„ ν™œμ„±ν™”ν•˜κΈ° μœ„ν•œ 보닀 일반적인 λ°©λ²•μœΌλ‘œ, λ‹€μ–‘ν•œ μ‰˜ ν™˜κ²½μ—μ„œλ„ 잘 μž‘λ™ν•©λ‹ˆλ‹€.

Conda μ„€μΉ˜ ν›„ μ‰˜ μ„€μ • 파일(.bashrc, .zshrc λ“±)이 μžλ™μœΌλ‘œ μ—…λ°μ΄νŠΈλ˜μ§€ μ•Šμ•„ conda activate λͺ…λ Ήμ–΄κ°€ μ œλŒ€λ‘œ μž‘λ™ν•˜μ§€ μ•ŠλŠ” κ²½μš°κ°€ μžˆμŠ΅λ‹ˆλ‹€. 이 문제λ₯Ό ν•΄κ²°ν•˜κΈ° μœ„ν•΄, μˆ˜λ™μœΌλ‘œ Conda μ΄ˆκΈ°ν™” 과정을 μ§„ν–‰ν•΄μ•Ό ν•©λ‹ˆλ‹€. λ‹€μŒ 단계λ₯Ό 따라 μ‰˜ μ„€μ • νŒŒμΌμ„ μ—…λ°μ΄νŠΈν•˜κ³ , conda activate λͺ…λ Ήμ–΄κ°€ μ •μƒμ μœΌλ‘œ μž‘λ™ν•˜λ„λ‘ μ„€μ •ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

πŸ’‘μ΄ˆκΈ°ν™” 방법

  1. Conda μ΄ˆκΈ°ν™” μ‹€ν–‰

    Condaλ₯Ό 처음 μ„€μΉ˜ν•œ ν›„, μ‰˜μ—μ„œ Condaλ₯Ό μ˜¬λ°”λ₯΄κ²Œ μ΄ˆκΈ°ν™”ν•˜κΈ° μœ„ν•΄ λ‹€μŒ λͺ…λ Ήμ–΄λ₯Ό μ‹€ν–‰ν•©λ‹ˆλ‹€. 이 λͺ…령은 ν˜„μž¬ μ‚¬μš© 쀑인 μ‰˜μ— 맞게 Condaλ₯Ό μ΄ˆκΈ°ν™”ν•˜κ³ , ν•„μš”ν•œ 섀정을 μ‰˜μ˜ ꡬ성 νŒŒμΌμ— μΆ”κ°€ν•©λ‹ˆλ‹€.

    1
    
    conda init
    

    conda init λͺ…령은 ν˜„μž¬ μ‚¬μš© 쀑인 μ‰˜μ„ μžλ™μœΌλ‘œ κ°μ§€ν•˜μ—¬, ν•΄λ‹Ή μ‰˜μ˜ ꡬ성 νŒŒμΌμ— μ΄ˆκΈ°ν™” 슀크립트λ₯Ό μΆ”κ°€ν•©λ‹ˆλ‹€. Bash, Zsh, Fish, PowerShell λ“± λ‹€μ–‘ν•œ μ‰˜μ„ μ§€μ›ν•©λ‹ˆλ‹€.

  2. μ‰˜ ꡬ성 파일 μˆ˜λ™ νŽΈμ§‘

    λ§Œμ•½ conda init λͺ…λ Ήμ–΄ μ‹€ν–‰ 후에도 conda activateκ°€ μ—¬μ „νžˆ μž‘λ™ν•˜μ§€ μ•ŠλŠ”λ‹€λ©΄, μ‰˜ ꡬ성 νŒŒμΌμ„ 직접 νŽΈμ§‘ν•  수 μžˆμŠ΅λ‹ˆλ‹€. Bashλ₯Ό μ‚¬μš©ν•˜λŠ” 경우 .bashrc, Zshλ₯Ό μ‚¬μš©ν•˜λŠ” 경우 .zshrc νŒŒμΌμ„ νŽΈμ§‘ν•©λ‹ˆλ‹€.

    • Bash μ‚¬μš©μžμ˜ 경우:
      1
      
      		echo ". /home/<username>/miniconda3/etc/profile.d/conda.sh" >> ~/.bashrc
      
    • Zsh μ‚¬μš©μžμ˜ 경우:
      1
      
      		echo ". /home/<username>/miniconda3/etc/profile.d/conda.sh" >> ~/.zshrc
      
  3. μ‰˜ μž¬μ‹œμž‘

    μ„€μ • νŒŒμΌμ„ μ—…λ°μ΄νŠΈν•œ ν›„, μ‰˜μ„ μž¬μ‹œμž‘ν•˜κ±°λ‚˜ μƒˆ 터미널 창을 μ—΄μ–΄ 변경사항을 μ μš©ν•©λ‹ˆλ‹€. 이제 conda activate λͺ…λ Ήμ–΄κ°€ μ •μƒμ μœΌλ‘œ μž‘λ™ν•΄μ•Ό ν•©λ‹ˆλ‹€.

    이 단계듀을 μˆ˜ν–‰ν•¨μœΌλ‘œμ¨, conda activate λͺ…λ Ήμ–΄κ°€ μž‘λ™ν•˜μ§€ μ•ŠλŠ” 문제λ₯Ό ν•΄κ²°ν•  수 μžˆμŠ΅λ‹ˆλ‹€. Conda ν™˜κ²½μ„ μ›ν™œν•˜κ²Œ ν™œμ„±ν™”ν•˜κ³  관리할 수 μžˆλŠ” κΈ°λ°˜μ„ λ§ˆλ ¨ν•˜κ²Œ λ©λ‹ˆλ‹€.

κ²°λ‘ 

CondaλŠ” 데이터 κ³Όν•™, 기계 ν•™μŠ΅ ν”„λ‘œμ νŠΈ λ“± λ‹€μ–‘ν•œ 개발 ν™˜κ²½μ—μ„œ μœ μš©ν•˜κ²Œ μ‚¬μš©λ  수 μžˆλŠ” κ°•λ ₯ν•œ λ„κ΅¬μž…λ‹ˆλ‹€.

이 글을 톡해 Conda ν™˜κ²½μ˜ 생성, 관리, Jupyter Notebookμ—μ„œμ˜ ν™œμš© 방법 등을 μ•Œμ•„λ³΄μ•˜μŠ΅λ‹ˆλ‹€. λ˜ν•œ, conda activate λͺ…λ Ήμ–΄κ°€ μž‘λ™ν•˜μ§€ μ•Šμ„ λ•Œμ˜ λŒ€μ•ˆμœΌλ‘œ source activate μ‚¬μš©λ²•λ„ ν•¨κ»˜ μ†Œκ°œν–ˆμŠ΅λ‹ˆλ‹€.

Condaλ₯Ό 효율적으둜 μ‚¬μš©ν•¨μœΌλ‘œμ¨ ν”„λ‘œμ νŠΈ 관리λ₯Ό 보닀 μ›ν™œν•˜κ²Œ μ§„ν–‰ν•  수 있기λ₯Ό λ°”λžλ‹ˆλ‹€.



-->