본문 바로가기
파이썬

파이썬 가상환경 구축하기

by huffpuffkin 2026. 3. 15.

가상환경이란 파이썬에서 독립적인 프로젝트를 위한 개별적인 공간을 말한다. 가상환경을 이용하면 프로젝트마다 의존성과 라이브러리를 구분하여 관리할 수 있다. 또한 다른 개발자들과 협업하는 경우 개발 환경을 통일하기도 쉽다. 

 

 

 

보통 파이썬 환경에서 가상환경을 구축할 떄는 Conda와 Venv를 많이 사용한다.

 

 

 

Conda

콘다는 Anaconda 또는 Miniconda를 통해 설치가 가능하다. (Miniconda가 더 경량화된 버전이다)

 

 

 

 

콘다 가상환경은 다음과 같이 생성한다. [Window 기준]

conda create --name [가상환경 이름] python=[파이썬 버전]

 

 

활성화는 activate 명령어를 사용한다.

activate [가상환경 이름]

 

 

 

 

콘다는 다음과 같은 특징이 있다.

  • 파이썬 외에도 R, Ruby 등 다양한 언어의 패키지를 관리할 수 있다
  • 데이터 사이언스와 관련된 복잡한 패키지들을 쉽게 설치 및 관리할 수 있다
  • 패키지 간 의존성을 체크해 충돌을 방지한다

 

 

 

 

Venv

Venv는 파이썬을 위한 가상환경 생성 도구이다. 파이썬 버전 3.3부터 표준 라이브러리에 포함되었다. 시스템의 파이썬 환경에 영향을 주지 않으며, 프로젝트마다 다른 버전의 라이브러리를 사용할 수 있게 해준다. 

 

 

 

 Venv 가상환경은 다음과 같이 생성한다 [Window 기준]

python -m venv .venv
.venv\Scripts\Activate.ps1   # Window PowerShell 기준 활성화 명령어
source .venv/Scripts/activate   # Window Bash 기준 활성화 명령어
source .venv/bin/activate   # Linux, MacOS 기준 활성화 명령어 
python -m ensurepip --upgrade   # pip가 없는 경우 설치
python -m pip install --upgrade pip   # pip upgrade
  • python: python이라는 프로그램을 사용한다.
  • m: 모듈을 스크립트로 호출한다. 다음에 어떤 모듈인지 지정한다.
  • venv: 보통 Python에 기본으로 설치되어 있는 venv 모듈을 사용한다.
  • .venv: 새 디렉터리인 .venv에 가상 환경을 생성한다.

 

새 터미널 세션을 시작할 때마다 가상환경을 활성화 해주어야 한다. 또한 해당 환경에 새 패키지를 설치할 때마다 환경을 다시 활성화 해야 한다.

 

 

 

가상환경이 활성화 되어있는지의 여부는 다음과 같이 확인한다.

Get-Command python

위 명령어를 실행했을 때 C:\Users\user\code\awesome-project\.venv\Scripts\python 와 같이 응답이 오면 된다. 

 

 

 

venv의 주요 명령어는 다음과 같다.

deactivate   # 가상환경 비활성화
pip install [패키지명]   # 패키지 설치
pip list   # 설치된 패키지 목록 확인

 

 

 

git을 사용하는 경우 .venv의 모든 내용을 git에서 제외하도록 해야한다. 따라서 .gitignore파일에 모두 포함시켜준다.

echo "*" > .venv/.gitignore

 

 

 

 

Venv는 다음과 같은 특징이 있다.

  • 파이썬 기본 모듈이기 때문에 추가 설치가 필요 없고, 사용이 간단하다
  • pip freeze > requirements.txt 명령으로 현재 환경의 패키지 목록을 저장하고, 다른 환경에서 pip install -r requirements.txt 명령으로 동일한 환경 구축이 가능하다

 

 

 

 

Venv로 가상환경 구축하기

가상환경을 구축하기 전에, 편하게 진행하기 위해 uv라는 툴을 사용해보기로 했다. uv는 패키지  설치, 관리, 빌드, 배포까지 모두 가능한 파이썬 종속성/패키지/프로젝트 관리 툴이다. 

 

 

여기서 궁금해진건 venv랑 uv의 차이이다.

 

 

일단 핵심적인 것은 venv와 uv 둘 다 파이썬 개발 환경을 관리하는 도구이지만 venv는 가상환경 uv는 패키지 관리 + 가상환경 관리까지 하는 도구라고 한다.

 

 

venv만 활용해서 가상환경을 생성하고 패키지를 설치/관리하려면 venv로 가상환경을 생성하고 pip로 패키지를 설치를 해야한다.

python -m venv .venv
source .venv/bin/activate
pip install fastapi

 

 

 

하지만 uv를 활용하면 가상환경 생성 + 패키지 설치를 모두 uv로 빠르게 할 수 있다. 

(uv = pip + venv 기능을 통합한 빠른 패키지 매니저)

uv venv
uv pip install fastapi

 

한눈에 봐도 venv만 사용했을 때보다 간단한 것을 알 수 있다. 

 

 

 

 

 

나는 다음과 같은 플로우로 가상환경을 생성했다.

 

1. pip 설치

python -m ensurepip --upgrade
python -m pip install --upgrade pip

2. pip 명령어로 uv 설치

pip install uv

3. 가상환경 생성

# python 3.11로 프로젝트 초기화
uv init --python python3.11

# python 3.11로 가상환경 생성
uv venv --python python3.11

# 가상환경 활성화 
# 관리자 권한으로 PowerShell 실행
Set-ExecutionPolicy RemoteSigned -Scope CurrentUser
# 활성화
.venv\Scripts\activate

 

 

 

추가적으로 패키지를 설치하기 위해서는 다음 명령어를 사용하면 된다

uv pip install "fastapi[standard]"
uv add pandas

 

 

 

 

 

requirements.txt 파일은 다음과 같이 생성한다.

uv pip freeze > requirements.txt