λ°˜μ‘ν˜•

🎈 가상 ν™˜κ²½(virtual environment)

Python의 가상 ν™˜κ²½(virtual environment)은 ν”„λ‘œμ νŠΈλ§ˆλ‹€ κ³ μœ ν•œ νŒ¨ν‚€μ§€μ™€ μ˜μ‘΄μ„±μ„ 관리할 수 μžˆλ„λ‘ λ³„λ„μ˜ Python ν™˜κ²½μ„ μƒμ„±ν•˜λŠ” 도ꡬ이닀. 가상 ν™˜κ²½μ„ μ‚¬μš©ν•˜λ©΄ ν”„λ‘œμ νŠΈλ§ˆλ‹€ 독립적인 Python νŒ¨ν‚€μ§€ ν™˜κ²½μ„ ꡬ좕할 수 μžˆμ–΄, νŒ¨ν‚€μ§€ 버전 μΆ©λŒμ„ λ°©μ§€ν•˜κ³ , λ‹€λ₯Έ ν”„λ‘œμ νŠΈμ™€μ˜ μ˜μ‘΄μ„± 문제λ₯Ό ν•΄κ²°ν•  수 μžˆλ‹€.

** 가상 ν™˜κ²½μ˜ ν•„μš”μ„±

Python ν”„λ‘œμ νŠΈλ§ˆλ‹€ μ‚¬μš©ν•΄μ•Ό ν•˜λŠ” λΌμ΄λΈŒλŸ¬λ¦¬λ“€μ΄ λ‹€λ₯Ό 수 있고, λΌμ΄λΈŒλŸ¬λ¦¬κ°€ 같더라도 버전이 λ‹€λ₯Ό 수 μžˆλ‹€. 이 경우 같은 μ‹œμŠ€ν…œ ν™˜κ²½μ—μ„œ 이 두 ν”„λ‘œμ νŠΈλ₯Ό κ΄€λ¦¬ν•˜κΈ°κ°€ μ–΄λ €μšΈ 수 μžˆλ‹€. 가상 ν™˜κ²½μ„ μ‚¬μš©ν•˜λ©΄ ν”„λ‘œμ νŠΈλ³„λ‘œ 라이브러리 버전을 λ…λ¦½μ μœΌλ‘œ 관리할 수 μžˆλ‹€.

** μš”μ•½

  • 가상 ν™˜κ²½ ν™œμ„±ν™”: conda activate myenv
  • μ½”λ“œ μ‹€ν–‰: python my\_script.py λ˜λŠ” python (인터프리터 μ‚¬μš©)
  • 가상 ν™˜κ²½ λΉ„ν™œμ„±ν™”: conda deactivate

 

1. 가상 ν™˜κ²½ μƒμ„±ν•˜κΈ°

 

βœ… 가상 ν™˜κ²½ 생성

μƒˆλ‘œμš΄ 가상 ν™˜κ²½μ„ μƒμ„±ν•˜λ €λ©΄ conda create λͺ…λ Ήμ–΄λ₯Ό μ‚¬μš©ν•œλ‹€.

conda create --name myenv

μœ„ λͺ…λ Ήμ–΄λŠ” myenvλΌλŠ” μ΄λ¦„μ˜ 가상 ν™˜κ²½μ„ μƒμ„±ν•œλ‹€. ν™˜κ²½ 이름은 μ›ν•˜λŠ” λŒ€λ‘œ 지정할 수 μžˆλ‹€.

 

βœ… νŠΉμ • Python 버전을 μ§€μ •ν•˜μ—¬ ν™˜κ²½ 생성

νŠΉμ • Python 버전을 μ‚¬μš©ν•΄μ•Ό ν•˜λŠ” 경우, 버전을 λͺ…μ‹œν•˜μ—¬ 가상 ν™˜κ²½μ„ 생성할 수 μžˆλ‹€.

conda create --name myenv python=3.8

μœ„ λͺ…λ Ήμ–΄λŠ” Python 3.8 버전을 μ‚¬μš©ν•˜λŠ” myenv 가상 ν™˜κ²½μ„ μƒμ„±ν•œλ‹€.

 

βœ… Python 3.10** 버전을 μ‚¬μš©ν•˜λŠ” μƒˆλ‘œμš΄ 가상 ν™˜κ²½ myenv01을 μƒμ„±ν•˜λŠ” λͺ…λ Ήμ–΄

conda create -n myenv python=3.10

⭐ --name μ˜΅μ…˜μ€ ν™˜κ²½μ˜ 이름을 μ§€μ •ν•˜λŠ” 두 개의 λŒ€μ‹œ(--)κ°€ μžˆλŠ” κΈ΄ ν˜•νƒœμ˜ μ˜΅μ…˜μ΄λ©°,

λ‹¨μΆ•ν˜• μ˜΅μ…˜μœΌλ‘œλŠ” -n(λŒ€μ‹œ ν•˜λ‚˜)도 μ‚¬μš©ν•  수 μžˆλ‹€.

 

2. 가상 ν™˜κ²½ ν™œμ„±ν™”

μƒμ„±ν•œ 가상 ν™˜κ²½μ„ μ‚¬μš©ν•˜λ €λ©΄ ν™œμ„±ν™”ν•΄μ•Ό ν•œλ‹€.

conda activate myenv

터미널에 (myenv)와 같이 ν‘œμ‹œλ˜λ©°, myenv 가상 ν™˜κ²½μ΄ ν™œμ„±ν™”λœ μƒνƒœμž„μ„ λ‚˜νƒ€λ‚Έλ‹€.

3. νŒ¨ν‚€μ§€ μ„€μΉ˜ 및 관리

가상 ν™˜κ²½μ΄ ν™œμ„±ν™”λœ μƒνƒœμ—μ„œ conda install λͺ…λ Ήμ–΄λ‘œ νŒ¨ν‚€μ§€λ₯Ό μ„€μΉ˜ν•  수 μžˆλ‹€.

conda install requests

μœ„ λͺ…λ Ήμ–΄λŠ” ν˜„μž¬ ν™œμ„±ν™”λœ myenv ν™˜κ²½μ—λ§Œ requests νŒ¨ν‚€μ§€λ₯Ό μ„€μΉ˜ν•œλ‹€.

βœ… conda와 pip을 ν•¨κ»˜ μ‚¬μš©ν•˜κΈ°

Conda ν™˜κ²½μ—μ„œ μ œκ³΅λ˜μ§€ μ•ŠλŠ” νŒ¨ν‚€μ§€κ°€ μžˆμ„ 경우, pipλ₯Ό 톡해 μ„€μΉ˜ν•  μˆ˜λ„ μžˆλ‹€. Conda와 pipλ₯Ό ν•¨κ»˜ μ‚¬μš©ν•  λ•ŒλŠ” 가상 ν™˜κ²½μ΄ ν™œμ„±ν™”λœ μƒνƒœμ—μ„œ pip install을 μ‚¬μš©ν•˜λŠ” 것이 μ€‘μš”ν•˜λ‹€.

pip install some_package

μ΄λ ‡κ²Œ ν•˜λ©΄ ν•΄λ‹Ή νŒ¨ν‚€μ§€λŠ” myenv ν™˜κ²½ λ‚΄μ—λ§Œ μ„€μΉ˜λ˜λ©°, μ‹œμŠ€ν…œ μ „μ—­ ν™˜κ²½μ—λŠ” 영ν–₯을 λ―ΈμΉ˜μ§€ μ•ŠλŠ”λ‹€.

4. 가상 ν™˜κ²½ λΉ„ν™œμ„±ν™”

가상 ν™˜κ²½ μ‚¬μš©μ„ 마쳀으면, conda deactivate λͺ…λ Ήμ–΄λ‘œ ν™˜κ²½μ„ λΉ„ν™œμ„±ν™”ν•˜μ—¬ μ‹œμŠ€ν…œ κΈ°λ³Έ ν™˜κ²½μœΌλ‘œ λŒμ•„κ°ˆ 수 μžˆλ‹€.

conda deactivate

5. 가상 ν™˜κ²½ 관리

βœ… 가상 ν™˜κ²½ λͺ©λ‘ 확인

ν˜„μž¬ μƒμ„±λœ λͺ¨λ“  가상 ν™˜κ²½μ„ ν™•μΈν•˜λ €λ©΄ conda env list λ˜λŠ” conda info --envs λͺ…λ Ήμ–΄λ₯Ό μ‚¬μš©ν•œλ‹€.

conda env list

βœ… 가상 ν™˜κ²½ μ‚­μ œ

μ‚¬μš©ν•˜μ§€ μ•ŠλŠ” ν™˜κ²½μ€ conda remove --name myenv --all λͺ…λ Ήμ–΄λ‘œ μ‚­μ œν•  수 μžˆλ‹€.

conda remove --name myenv --all

🎈 가상 ν™˜κ²½μ˜ μž₯점

  • ν”„λ‘œμ νŠΈ 독립성: μ—¬λŸ¬ ν”„λ‘œμ νŠΈλ§ˆλ‹€ ν•„μš”ν•œ νŒ¨ν‚€μ§€μ™€ Python 버전을 λ…λ¦½μ μœΌλ‘œ 관리할 수 μžˆμ–΄, 좩돌 없이 μž‘μ—…ν•  수 μžˆλ‹€.
  • 버전 μ œμ–΄: νŠΉμ • ν”„λ‘œμ νŠΈμ˜ μš”κ΅¬ 사항에 맞좰 Python 및 νŒ¨ν‚€μ§€ 버전을 κ³ μ •ν•˜μ—¬ μž‘μ—… μž¬ν˜„μ„±μ„ 높일 수 μžˆλ‹€.
  • μ‹œμŠ€ν…œ 보호: μ‹œμŠ€ν…œμ˜ κΈ°λ³Έ Python ν™˜κ²½μ— 영ν–₯을 주지 μ•ŠμœΌλ―€λ‘œ, μ‹œμŠ€ν…œ μ „λ°˜μ˜ μ•ˆμ •μ„±μ„ μœ μ§€ν•  수 μžˆλ‹€.

Minicondaλ₯Ό μ‚¬μš©ν•œ 가상 ν™˜κ²½ κ΄€λ¦¬λŠ” μ—¬λŸ¬ ν”„λ‘œμ νŠΈλ₯Ό 효율적으둜 κ΄€λ¦¬ν•˜κ³ , 각 ν”„λ‘œμ νŠΈλ³„λ‘œ μΌκ΄€λœ μž‘μ—… ν™˜κ²½μ„ μ„€μ •ν•˜λŠ” 데 맀우 μœ μš©ν•˜λ‹€.

λ°˜μ‘ν˜•

+ Recent posts