Overview
๊ฐ๋ฐ์ ํ๋ค๋ณด๋ฉด ํ์ฌ์์ ์
๋ฌด๋ฅผ ํ ๋๋ ์๊ณ ์ฌ์ด๋ํ๋ก์ ํธ๋ฅผ ํ ๋๋ ์๋ค. ์ฌ๋ฌ ํ๋ก์ ํธ๊ฐ ํ๋์ ํ๊ฒฝ์ ๊ณต์ ํ๋ฉด ์ข๊ฒ ์ง๋ง ํ์ค์ ๊ทธ๋ ์ง ์๋ค. ์ค๋ ๋ ํ๋ก์ ํธ๋ ์ ์ง๋ณด์๊ฐ ์ ๋ ์ด๋ฃจ์ด์ง์ง ์์ ๋ฎ์ ๋ฒ์ ์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฌ์ฉํ๊ณ ์๋ ๊ฒฝ์ฐ๊ฐ ์๊ณ , ๊ทธ์ ๋ฐํด ํ์ฌ ํ๋ฐํ ์งํ๋๊ณ ์๋ ํ๋ก์ ํธ๋ ๋น๊ต์ ์ต์ ๋ฒ์ ์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ธ ์ ์์ ๊ฐ๋ฅ์ฑ์ด ๋๋ค.
๊ทธ๋ ๋ค๊ณ ํด์, ์ค๋๋ ํ๋ก์ ํธ ์ ๊ตฌ๋ฒ์ ์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ต์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ๋ฒ์ ์ผ๋ก ์
๋ฐ์ดํธ ํ๋ฉด ์ข๊ฒ ์ง๋ง ๋จผ์ง ํ ํจ๋ง ๊ฑท์ด๋ด๋ ๋ฒ๊ทธ๊ฐ ๋ฐ์ํ ์ ์๊ธฐ ๋๋ฌธ์ ๋๋ ต๋ค. ๊ทธ๋ ๋ค๊ณ ํด์ ํ์ฌ ๋ด ์ปดํจํฐ์ ์ค์น ๋์ด์๋ ๋ฎ์ ๋ฒ์ ์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฌ์ฉํ๊ธฐ ์ํด ํ์ฌ ํ๋ฐํ ์งํ ์ค์ธ ํ๋ก์ ํธ์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ๋ฒ์ ์ ๋ฎ์ถ ํ์๋ ์๋ค.
์ด์ ๊ฐ์ด ์๋ก ๋ถ๋ฆฌ๋ ํ๊ฒฝ์ด ํ์ํ ์ํฉ์ด ๋ฐ๋์ ์กด์ฌํ๋๋ฐ, ํ๋์ ์ปดํจํฐ์์ ๊ฐ ํ๋ก์ ํธ๋ง๋ค ๋ค๋ฅธ ํ๊ฒฝ์ ๊ตฌ์ฑํ๊ณ ์ถ์ ๋ ์ฌ์ฉํ๋ ๊ฒ์ด venv์ด๋ค. venv๋ ํ๋ก์ ํธ๋ง๋ค ๋
๋ฆฝ์ ์ธ Python ์คํ ํ๊ฒฝ์ ๋ง๋ค์ด์ฃผ๋ ๋๊ตฌ์ด๋ค.
Contents
ย Venv๋ ๋ฌด์์ด๊ณ ์ ์จ์ผํ ๊น?
Venv๋ Virtual Environment์ ์ฝ์๋ก ํ๋ก์ ํธ๋ง๋ค ๋
๋ฆฝ์ ์ธ Python ์คํ ํ๊ฒฝ์ ๋ง๋ค์ด์ฃผ๋ ๋๊ตฌ์ด๋ค. ํ๋ก์ ํธ๋ง๋ค ์ฌ์ฉํ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ ๊ฒน์น ๋ ์ด ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ ํ๋์ง๋ง ํ๋ก์ ํธ๋ง๋ค ๋ค๋ฅธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ๋ฒ์ ์ ์ฌ์ฉํ ์ ์๊ฒ ํด์ฃผ๋ ๊ฐ์ํ๊ฒฝ์ด๋ค.
์๋ฅผ ๋ค์ด A ํ๋ก์ ํธ์ B ํ๋ก์ ํธ์์ FastAPI ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฌ์ฉํ๋ค๊ณ ํ์ ๋ ๋ ํ๋ก์ ํธ์์ ์ฌ์ฉํ๋ fastapi์ ๋ฒ์ ์ด ๋ค๋ฅผ ์ ์๋ค.
ํ๋ก์ ํธ A
fastapi==0.95
Plain Text
๋ณต์ฌ
ํ๋ก์ ํธ B
fastapi==0.110
Plain Text
๋ณต์ฌ
์์ ๊ฒฝ์ฐ, ๋ ๊ฐ๋ฅผ ์ ์ญ์ผ๋ก ํ๊ฒฝ์ ์ค์นํ๊ฒ ๋๋ฉด ๋ฒ์ ์ถฉ๋์ด ๋ฐ์ํ๋ค. ํ์ง๋ง venv๋ฅผ ์ฐ๊ฒ ๋๋ฉด ํ๋ก์ ํธ๋ง๋ค ๊ฐ์ ํ๊ฒฝ์ ๊ตฌ์ถํ์ฌ ์ถฉ๋ ์์ด ํ๋ก์ ํธ๋ง๋ค ๋ค๋ฅธ ๋ฒ์ ์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฌ์ฉํ ์ ์๊ฒ ๋๋ ๊ฒ์ด๋ค.
ย Venv ์ฌ์ฉํ๊ธฐ
venv๋ Python ๋ด์ฅ ๋ชจ๋๋ก Python์ ์ค์นํ๋ฉด ๊ธฐ๋ณธ์ผ๋ก ๋ค์ด๊ฐ์๋ค.
๊ฐ์ํ๊ฒฝ ์์ฑ
# python -m venv <์์ฑํ ํด๋ ์ด๋ฆ>
$ python -m venv .venv
Shell
๋ณต์ฌ
ํ์ฑํ (Mac/Linux)
# source <์์ฑํ ํด๋ ์ด๋ฆ>/bin/activate
$ source .venv/bin/activate
Shell
๋ณต์ฌ
ํ์ฑํ (Windows)
# <์์ฑํ ํด๋ ์ด๋ฆ>\Scripts\activate
$ .venv\Scripts\activate
Shell
๋ณต์ฌ
ํ์ฑํ๋ฅผ ํ๋ฉด ๋ณดํต ํฐ๋ฏธ๋์ ์ ์ผ ์์ ํ์ฌ ํ์ฑํ ์ค์ธ ํ๊ฒฝ ์ด๋ฆ์ด ํ์ ๋๋ค.
(.venv) chaminjae@macbookpro fastapi %
Shell
๋ณต์ฌ
ํ
์คํธ๋ฅผ ์ํด .venv2๋ ๋ง๋ค๊ณ .venv๋ฅผ ํ์ฑํ ์ํจ ํ ํ์ฌ ์ค์น ๋์ด์๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ๋ชฉ๋ก์ ํ์ธ ํด๋ณด์๋ค.
$ python -m venv .venv2
$ source .venv/bin/activate
(.venv) $ pip list
Package Version
------- -------
pip 25.3
Shell
๋ณต์ฌ
.venv์ FastAPI์ uvicorn์ ์ค์นํ๊ณ , .venv์ .venv2์ pip list๋ฅผ ํ์ธ ํด๋ณด์๋ค.
.venv
Package Version
----------------- -------
annotated-doc 0.0.4
annotated-types 0.7.0
anyio 4.12.1
click 8.3.1
fastapi 0.133.1
h11 0.16.0
idna 3.11
pip 26.0.1
pydantic 2.12.5
pydantic_core 2.41.5
starlette 0.52.1
typing_extensions 4.15.0
typing-inspection 0.4.2
uvicorn 0.41.0
Shell
๋ณต์ฌ
.venv2
Package Version
------- -------
pip 25.3
Shell
๋ณต์ฌ
ํ์ธ ๊ฒฐ๊ณผ ํ๋์ ์ปดํจํฐ์์ ์์
์ ํ๊ณ ์์์๋ ๋ถ๊ตฌํ๊ณ ์๋ก ๋ค๋ฅธ ํ๊ฒฝ์ ๊ตฌ์ถํ์ฌ ๊ฐ๋ฐ์ ์งํํ ์ ์์์ ํ์ธํ๋ค. ์ด์ฒ๋ผ venv๋ฅผ ์ฌ์ฉํ๋ฉด ๋ค๋ฅธ ํ๋ก์ ํธ์์ ์ถฉ๋์ ๋ฐฉ์งํ๊ณ ํ์ ํ๊ฒฝ์ด ๋ค๋ฅผ ์ ์์์๋ ๋์ผํ ํ๊ฒฝ์์ ํ๋ก์ ํธ๋ฅผ ์งํํ ์ ์๋ค. ๊ฐ๋ฐ ํ๊ฒฝ ๋ง์ถ๋ ๊ฒ ์์ฒด๊ฐ ํผ๊ณคํ ์ผ์ธ๋ฐ, ์ด์ฒ๋ผ ์ฒ์๋ถํฐ ๊ฐ์ ํ๊ฒฝ์ ์์ฑํ์ฌ ํ๋ก์ ํธ๋ฅผ ์งํํ๋ฉด ์ฌ๊ณ ๋ฅผ ์ค์ผ ์ ์๋ ์ด์ ์ด ์๋ค.
๊ธฐํ
๊ฐ์ํ๊ฒฝ ๋น ์ ธ๋์ค๊ธฐ
$ deactivate
Shell
๋ณต์ฌ