ETC/Programming

[Python] Python κ°€μƒν™˜κ²½ (venv) μ•Œμ•„λ³΄κΈ°

μ•ˆλƒμ„Έμš€ 2023. 8. 29. 13:39

가상 ν™˜κ²½μ΄λž€?

가상 ν™˜κ²½μ€ 파이썬 인터프리터, 라이브러리 및 μŠ€ν¬λ¦½νŠΈκ°€ λ‹€λ₯Έ 가상 ν™˜κ²½μ— μ„€μΉ˜λœ 것과 (기본적으둜) “μ‹œμŠ€ν…œ” 파이썬(κΈ°μ‘΄ 운영 체제 μΌλΆ€λ‘œ μ„€μΉ˜λ˜μ–΄μžˆλŠ” 것)에 μ„€μΉ˜λœ λͺ¨λ“  λΌμ΄λΈŒλŸ¬λ¦¬μ™€ κ²©λ¦¬λ˜μ–΄μžˆλŠ” 파이썬 ν™˜κ²½.

파이썬 μ‹€ν–‰ 파일과 가상 ν™˜κ²½μž„μ„ λ‚˜νƒ€λ‚΄λŠ” λ‹€λ₯Έ νŒŒμΌμ„ ν¬ν•¨ν•˜λŠ” 디렉터리 트리.

 

κ°€μƒν™˜κ²½μ„ μ‚¬μš©ν•΄μ•Ό ν•˜λŠ” 이유?

파이썬 νŠΉμ„±

  • 개발 μ£ΌκΈ°κ°€ 빠름.
  • λ‹€μ–‘ν•œ νŒ¨ν‚€μ§€λ₯Ό μ΄μš”ν•˜λŠ”λ°, νŒ¨ν‚€μ§€ 버전에 따라 ν˜Έν™˜μ΄ μ•ˆλ˜λŠ” κ²½μš°κ°€ λ°œμƒ.

가상 ν™˜κ²½μ€ 쒅속성 관리 및 뢄리, μ‹œμŠ€ν…œ κ΄€λ¦¬μž μ•‘μ„ΈμŠ€ 없이 Python νŒ¨ν‚€μ§€ μ„€μΉ˜ 및 μ‚¬μš©μ˜ μš©μ΄μ„±, μ—¬λŸ¬ Python 버전에 걸치 Python μ†Œν”„νŠΈμ›¨μ–΄μ˜ μžλ™ ν…ŒμŠ€νŠΈ 등에 이미 널리 μ‚¬μš©λ˜κ³  μžˆλ‹€. μ‹œμŠ€ν…œ 레벨의 site-package λ””λ ‰ν† λ¦¬λ‘œλΆ€ν„° μ™„μ „νžˆ λ…λ¦½λ˜μ–΄ μžˆλ‹€.

πŸ”— https://thrillfighter.tistory.com/387

πŸ”—  https://www.daleseo.com/python-venv/

 

venv λͺ¨λ“ˆ

파이썬 3.3 λΆ€ν„°λŠ” venv λͺ¨λ“ˆμ΄ λ‚΄μž₯되기 λ•Œλ¬Έμ— 별도 νŒ¨ν‚€μ§€ μ„€μΉ˜μ—†μ΄ 파이썬만 μ„€μΉ˜λ˜μ–΄ 있으면 λ°”λ‘œ 가상 ν™˜κ²½ ꡬ성이 κ°€λŠ₯ν•˜λ‹€.

자체 μ‚¬μ΄νŠΈ 디렉터리λ₯Ό κ°–λŠ” κ²½λŸ‰ 가상 ν™˜κ²½μ„ λ§Œλ“œλ‘, μ„ νƒμ μœΌλ‘œ μ‹œμŠ€ν…œ μ‚¬μ΄νŠΈ λ””λ ‰ν„°λ¦¬μ—μ„œ 격리할 수 μžˆλ„λ‘ 지원. 각 가상 ν™˜κ²½μ€ κ³ μœ ν•œ 파이썬 λ°”μ΄λ„ˆλ¦¬(이 ν™˜κ²½μ„ λ§Œλ“œλŠ” 데 μ‚¬μš©λœ λ°”μ΄λ„ˆλ¦¬ 버전과 일치)λ₯Ό 가지며 μžμ‹ μ˜ μ‚¬μ΄νŠΈ 디렉터리에 λ…λ¦½μ μœΌλ‘œ μ„€μΉ˜λœ 파이썬 νŒ¨ν‚€μ§€ 집합을 κ°€μ§ˆ 수 있음.

# Create Virtual Environment
python3 -m venv /path/to/new/virtual/environment

 

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

일단 가상 ν™˜κ²½μ΄ λ§Œλ“€μ–΄μ§€λ©΄, 가상 ν™˜κ²½μ˜ λ°”μ΄λ„ˆλ¦¬ 디렉터리에 μžˆλŠ” 슀크립트λ₯Ό μ‚¬μš©ν•˜μ—¬ “ν™œμ„±ν™””ν•  수 μžˆλ‹€. ν™˜κ²½μ„ ꡬ체적으둜 ν™œμ„±ν™”ν•  ν•„μš”λŠ” μ—†λ‹€. ν™œμ„±ν™”λŠ” 단지 PATH의 μ²˜μŒμ— 가상 ν™˜κ²½μ˜ λ°”μ΄λ„ˆλ¦¬ 디렉터리λ₯Ό μΆ”κ°€ν•΄μ„œ python이 가상 ν™˜κ²½μ˜ 파이썬 인터프리터λ₯Ό ν˜ΈμΆœν•˜κ³  전체 경둜λ₯Ό μ‚¬μš©ν•˜μ§€ μ•Šκ³ λ„ μ„€μΉ˜λœ 슀크립트λ₯Ό μ‹€ν–‰ν•  수 μžˆλ„λ‘ ν•œλ‹€. κ·ΈλŸ¬λ‚˜, 가상 ν™˜κ²½μ— μ„€μΉ˜λœ λͺ¨λ“  μŠ€ν¬λ¦½νŠΈλŠ” ν™œμ„±ν™”ν•˜μ§€ μ•Šκ³ λ„ μ‹€ν–‰ κ°€λŠ₯ν•΄μ•Ό ν•˜λ©°, μžλ™μœΌλ‘œ 가상 ν™˜κ²½μ˜ νŒŒμ΄μ¬μ„ μ‚¬μš©ν•˜μ—¬ μ‹€ν–‰ν•΄μ•Ό ν•œλ‹€.

πŸ’‘ 가상 ν™˜κ²½μ΄ ν™œμ„± μƒνƒœ = 가상 ν™˜κ²½μ˜ 파이썬 인터프리터가 μ‹€ν–‰ 쀑일 λ•Œ.

  • ν™œμ„±ν™”
# bash/zsh 셸을 μ‚¬μš©ν•˜λŠ” 경우
source <venv>/bin/activate
  • λΉ„ν™œμ„±ν™”
deactivate