한 서버(또는 PC)에 여러 애플리케이션이 있을 때, 각 애플리케이션이 다른 버전의 라이브러리를 요구하거나, 동일한 라이브러리라도 다른 설정에서 동작해야 할 수 있음.
다음과 같은 상황에서 유용함
애플리케이션 간 충돌 방지
환경 보존
버전 및 의존성 관리
python3 -m pip install --user -U virtualenv
cd [생성할 디렉토리]
virtualenv env # "env"는 가상환경 이름
가상환경을 활성화하여 해당 환경 내에서 작업 수행.
source env/bin/activate
.\env\Scripts\activate
pip install [패키지명]
# 예시:
pip install numpy pandas scikit-learn
deactivate

| 항목 | virtualenv | venv |
|---|---|---|
| Python 버전 | Python 2와 Python 3에서 모두 사용 가능 | Python 3.3 이상에서 내장 모듈로 제공 |
| 설치 필요 여부 | 추가로 설치 필요 (pip 통해 설치) | 별도 설치 불필요 (Python에 기본 내장) |
| 속도 | 더 빠름 | 상대적으로 느림 |
| 확장성 | 뛰어남 | 제한적 |
| Python 버전 관리 | 특정 Python 버전 가상환경 생성 가능 | 설치된 Python 버전에서만 사용 가능 |
| 업데이트 가능 여부 | pip으로 직접 업데이트 가능 | Python 기준으로 제공되며, 직접 업데이트 불가능 |
| 작업 | 명령어 |
|---|---|
| virtualenv 설치 | python3 -m pip install --user -U virtualenv |
| 가상환경 생성 | virtualenv [가상환경 이름] |
| 가상환경 활성화 (Linux/Mac) | source [가상환경 이름]/bin/activate |
| 가상환경 활성화 (Windows) | .\[가상환경 이름]\Scripts\activate |
| 가상환경 비활성화 | deactivate |
| 가상환경 내 패키지 설치 | pip install [패키지명] |