여러 프로젝트를 동시에 개발하다 보면 패키지 버전 충돌 문제가 발생합니다.
프로젝트 A: Django 3.2 필요
프로젝트 B: Django 4.2 필요
하나의 파이썬 환경에 두 버전을 동시에 설치할 수 없기 때문에, 프로젝트마다 독립된 공간을 만들어 각각의 패키지를 관리해야 합니다. 이것이 바로 가상 환경의 역할입니다.
파이썬 3.3부터 내장 모듈 venv로 가상 환경을 만들 수 있습니다. 별도 설치 없이 바로 사용할 수 있습니다.
# 가상 환경 생성
python -m venv 가상환경이름
# 가상 환경 활성화
# Windows
가상환경이름\Scripts\activate
# Mac / Linux
source 가상환경이름/bin/activate
# 활성화 확인 — 터미널 앞에 (가상환경이름) 표시됨
(myenv) $
# 가상 환경 비활성화
deactivate
활성화 후에는 pip install로 설치하는 패키지가 가상 환경 안에만 설치됩니다. 다른 프로젝트나 전역 환경에 영향을 주지 않습니다.
협업하거나 다른 환경에서 동일한 패키지를 설치해야 할 때 requirements.txt를 활용합니다.
# 현재 가상 환경의 패키지 목록과 버전을 파일로 저장
pip freeze > requirements.txt
생성된 requirements.txt는 다음과 같은 형태입니다.
Django==4.2.0
requests==2.28.2
numpy==1.24.0
pandas==2.0.1
다른 환경에서 동일한 패키지를 한 번에 설치할 때는 아래 명령어를 사용합니다.
# requirements.txt에 있는 패키지를 한 번에 설치
pip install -r requirements.txt
아나콘다(Anaconda)를 사용한다면 conda 명령어로 가상 환경을 관리합니다. venv와 달리 파이썬 버전까지 함께 지정할 수 있다는 장점이 있습니다.
# 가상 환경 생성 (파이썬 버전 지정 가능)
conda create -n 가상환경이름 python=3.11
# 가상 환경 활성화
conda activate 가상환경이름
# 가상 환경 비활성화
conda deactivate
# 가상 환경 목록 확인
conda env list
# 가상 환경 삭제
conda remove -n 가상환경이름 --all
| 구분 | venv | conda |
|---|---|---|
| 설치 | 파이썬 내장 | 아나콘다 설치 필요 |
| 파이썬 버전 관리 | ❌ 불가 | ✅ 버전 지정 가능 |
| 패키지 관리 | pip | conda 또는 pip |
| 주요 사용 환경 | 일반 파이썬 개발 | 데이터 과학, ML |
| 활성화 방법 | activate 이름 | conda activate 이름 |