κ°œλ°œπŸ’»/Python

[Python] 가상 ν™˜κ²½ μ‚¬μš©ν•˜κΈ°(venv)

壓倒 2022. 10. 5. 00:47

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

단어 κ·ΈλŒ€λ‘œ κ°€μƒμœΌλ‘œ μƒμ„±ν•˜λŠ” ν™˜κ²½μ΄λ‹€. μ‹€μ œ μ—¬λŸ¬κ°€μ§€ ν”„λ‘œμ νŠΈλ₯Ό μ§„ν–‰ν•˜λ‹€ 보면 νŒ¨ν‚€μ§€(라이브러리)의 버전 문제둜 인해 μ •μƒμ μœΌλ‘œ μ‹€ν–‰λ˜μ§€ μ•ŠλŠ” κ²½ν—˜λ“€μ„ ν•  것이닀. 

λ§Œμ•½ νŠΉμ • ν”„λ‘œκ·Έλž¨μ—μ„œ μ–΄λ–€ νŒ¨ν‚€μ§€μ˜ μš”κ΅¬ 버전이 1.7인데 ν˜„μž¬ 1.8 버전을 μ‚¬μš© 쀑이라면 λ‹€μš΄κ·Έλ ˆμ΄λ“œ ν›„ ν”„λ‘œμ νŠΈκ°€ λλ‚˜λ©΄ λ‹€μ‹œ 1.8둜 μ—…κ·Έλ ˆμ΄λ“œλ₯Ό ν•΄μ•Ό ν•˜λŠ” λ²ˆκ±°λ‘œμ›€μ΄ λ°œμƒν•  것이닀. 

μ΄λŸ¬ν•œ 문제λ₯Ό ν•΄κ²°ν•˜κΈ° μœ„ν•΄ ν”„λ‘œμ νŠΈ λ³„λ‘œ λ…λ¦½λœ 가상 ν™˜κ²½μ„ 사전에 κ΅¬μΆ•ν•˜μ—¬ μ‚¬μš©ν•˜λŠ” 것이 더 쒋은 방법이라고 μƒκ°ν•œλ‹€.

 

가상 ν™˜κ²½ 생성

이전 λ²„μ „μ˜ νŒŒμ΄μ¬μ—μ„œλŠ” λ‹€μŒκ³Ό 같은 λͺ…λ Ήμ–΄λ₯Ό μ‚¬μš©ν•˜μ—¬ λ³„λ„μ˜ μ„€μΉ˜ 과정이 ν•„μš”ν•˜λ‹€.

pip install virtualenv

 

ν•˜μ§€λ§Œ, 파이썬 3.3 μ΄μƒμ˜ 버전은 venv λͺ¨λ“ˆμ΄ 자체적으둜 λ‚΄μž₯λ˜μ–΄ μžˆμ–΄ λ³„λ„μ˜ μ„€μΉ˜ 과정이 ν•„μš”ν•˜μ§€ μ•Šκ³  λ‹€μŒκ³Ό 같은 λͺ…λ Ήμ–΄λ₯Ό 톡해 가상 ν™˜κ²½μ„ μ‰½κ²Œ 생성할 수 μžˆλ‹€.

$ python -m venv .venv
$ ls

Mode                 LastWriteTime         Length Name
----                 -------------         ------ ----
d-----      2022-10-05  μ˜€μ „ 12:29                .venv
-a----      2022-10-05  μ˜€μ „ 12:18              0 main.py

μ •μƒμ μœΌλ‘œ 가상 ν™˜κ²½μ„ μƒμ„±ν•œ ν›„ ls λͺ…λ Ήμ–΄λ₯Ό 톡해 ν™•μΈν•˜λ©΄ .venv 디렉토리가 μƒμ„±λœ 것을 확인할 수 μžˆλ‹€.

 

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

가상 ν™˜κ²½ ν™œμ„±ν™”λ„ κ°„λ‹¨ν•œ λͺ…λ Ήμ–΄λ₯Ό 톡해 μ‹€ν–‰ν•  수 μžˆλ‹€.

source (κ°€μƒν™˜κ²½)/Scripts/activate

 

ν•˜μ§€λ§Œ λ‹€μŒκ³Ό 같은 λͺ…λ Ήμ–΄λ₯Ό μ‚¬μš©ν•˜λ©΄ λ‹€μŒκ³Ό 같이 source λͺ…λ Ήμ–΄λ₯Ό μΈμ‹ν•˜μ§€ λͺ»ν•˜μ—¬ 였λ₯˜κ°€ λ°œμƒν•˜μ˜€λ‹€.

source 였λ₯˜

ν•΄λ‹Ή 였λ₯˜λŠ” ν˜„μž¬ μ‚¬μš©ν•˜κ³  μžˆλŠ” powershellκ°€ μ•„λ‹ˆλΌ git bashλ₯Ό μ‚¬μš©ν•  경우 ν•΄κ²°λœλ‹€. sourceλŠ” bash의 λ‚΄λΆ€ λͺ…λ Ήμ–΄κΈ° λ•Œλ¬Έμ— μ—λŸ¬κ°€ λ°œμƒν•œ 것을 μ•Œ 수 μžˆμ—ˆλ‹€.

Git Bash

 

μ‹€μ œ Git Bash λ₯Ό 톡해 λ™μΌν•œ λͺ…λ Ήμ–΄λ₯Ό μˆ˜ν–‰ν•  경우 μ„±κ³΅μ μœΌλ‘œ 가상 ν™˜κ²½μ΄ ν™œμ„±ν™”λœ 것을 확인할 수 μžˆλ‹€.

ν™œμ„±ν™”λœ κ°€μƒν™˜κ²½(.venv)

 

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

κ°€μƒν™˜κ²½ λΉ„ ν™œμ„±ν™”ν•˜λŠ” 방법은 λ‹€μŒκ³Ό κ°™λ‹€.

deactivate

 

였λ₯˜, 잘λͺ»λœ 점 λ˜λŠ” κΆκΈˆν•œ 점이 μžˆμœΌμ‹œλ‹€λ©΄ λŒ“κΈ€ λ‚¨κ²¨μ£Όμ„Έμš”β—