Python 가상환경 venv vs virtualenv 완벽 비교 (2025년 최신)

 

“ModuleNotFoundError: No module named ‘requests'”

이 에러 때문에 골머리 앓은 적 있나요?

로컬에선 잘 되던 코드가 다른 컴퓨터에선 안 돌아갑니다. 협업할 때마다 “내 컴퓨터에선 되는데요?” 하게 됩니다.

**Python 가상환경이 답입니다.**

3년간 50개 이상의 Python 프로젝트를 진행하면서 깨달은 것: 가상환경 없이는 프로젝트 관리가 불가능합니다.

이 글에서 배울 내용:
✓ 가상환경이 왜 필요한지
✓ venv vs virtualenv 차이점
✓ 실전 명령어 (복사 붙여넣기)
✓ 흔한 에러 해결법
✓ 팀 프로젝트 베스트 프랙티스


 

## 가상환경이 뭔데 왜 필요한가요?

### 문제 상황

**프로젝트 A**: Django 3.2 필요
**프로젝트 B**: Django 4.2 필요

같은 컴퓨터에서 두 버전을 동시에 쓸 수 없습니다. 하나만 설치됩니다.

“`bash
pip install django==3.2 # 프로젝트 A용
# 이제 프로젝트 B 작업…
pip install django==4.2 # 프로젝트 A 깨짐!
“`

### 해결책: 가상환경

각 프로젝트마다 독립된 Python 환경을 만듭니다.

├── 프로젝트A/
│ └── venv/ (Django 3.2)
└── 프로젝트B/
└── venv/ (Django 4.2)

**프로젝트마다 별도의 라이브러리 설치**가 핵심입니다.


 

## venv vs virtualenv: 뭘 써야 할까?

### 결론부터 (바쁜 분들을 위해)

– **Python 3.3+** 쓴다면 → **venv** (권장)
– **Python 2.7** 써야 한다면 → **virtualenv**
– **복잡한 설정** 필요 → **virtualenv**

### 비교표

| 구분 | venv | virtualenv |
| Python 버전 | 3.3+ 내장 | 2.7+ 지원 |
| 설치 필요 | ❌ 내장 | ✅ pip 설치 |
| 속도 | 빠름 | 약간 느림 |
| 기능 | 기본 | 고급 기능 많음 |
| 초보자 친화 | ⭐⭐⭐⭐⭐ | ⭐⭐⭐ |
| 호환성 | Python 3만 | Python 2/3 |


 

## venv 사용법 (실전 완전 정복)

### 1. 가상환경 생성

**Windows**
“`bash
python -m venv venv
“`

**Mac/Linux**
“`bash
python3 -m venv venv
“`

### 2. 가상환경 활성화

**Windows (CMD)**
“`bash
venv\Scripts\activate.bat
“`

**Windows (PowerShell)**
“`bash
venv\Scripts\Activate.ps1
“`

**Mac/Linux**
“`bash
source venv/bin/activate
“`

활성화되면 프롬프트 앞에 `(venv)` 표시됩니다.

### 3. 패키지 설치

“`bash
pip install requests
pip install django==4.2
“`

### 4. requirements.txt 생성

“`bash
pip freeze > requirements.txt
“`

### 5. 다른 컴퓨터에서 재현

“`bash
python -m venv venv
venv\Scripts\activate
pip install -r requirements.txt
“`


 

## 흔한 에러 해결법

### 1. PowerShell 실행 정책 에러

**해결**
“`bash
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser
“`

### 2. pip 버전 경고

**해결**
“`bash
python -m pip install –upgrade pip
“`

### 3. 가상환경 경로 문제

폴더 이름에 한글/공백을 제거하세요.


 

## VS Code 통합 설정

### Python 인터프리터 선택

1. `Ctrl + Shift + P`
2. “Python: Select Interpreter” 검색
3. `./venv/Scripts/python.exe` 선택

터미널 열면 자동으로 가상환경이 활성화됩니다.


 

## 팀 프로젝트 베스트 프랙티스

### 1. requirements.txt 버전 명시

**좋은 예**
“`
Django==4.2.0
requests==2.31.0
“`

**나쁜 예**
“`
Django # 버전 없음
requests>=2.0 # 너무 넓은 범위
“`

### 2. .gitignore 필수 설정

“`
venv/
env/
__pycache__/
*.pyc
.env
“`

## 자주 묻는 질문 (FAQ)

**Q: venv 폴더를 Git에 올려야 하나요?**
A: 아니요. .gitignore에 추가하고 requirements.txt만 공유하세요.

**Q: 가상환경 이름은 꼭 ‘venv’인가요?**
A: 아니요. 원하는 이름 가능합니다. 단, venv/env가 관례입니다.

**Q: 가상환경을 다른 폴더로 옮길 수 있나요?**
A: 불가능합니다. 절대 경로로 저장되어 있습니다. 삭제 후 재생성하세요.

**Q: Python 버전 업그레이드 하면?**
A: 가상환경 재생성 필요합니다.


 

## 결론: 가상환경은 필수

3년간 50개 프로젝트를 진행하며 깨달은 것:

**가상환경 없이는:**
❌ 프로젝트 간 충돌 발생
❌ 협업 시 “내 컴퓨터에선 되는데요?” 반복
❌ 배포 시 예상치 못한 에러

**가상환경 사용 후:**
✅ 프로젝트 독립성 보장
✅ requirements.txt 하나로 환경 재현
✅ 팀원 간 동일한 개발 환경

추천 워크플로우

“`bash
mkdir my_project
cd my_project
python -m venv venv
source venv/bin/activate # Mac/Linux
venv\Scripts\activate # Windows
pip install django requests
pip freeze > requirements.txt
git add requirements.txt
git commit -m “Add requirements”
“`

**지금 당장 시작하세요.** 5분이면 가상환경 구축 완료됩니다.


#python #가상환경 #venv #virtualenv #파이썬개발

 

 

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다