Python venv 에 대하여

이번 글은 Python venv 에 대해 소개해드리고자 작성한 글입니다.
Venv 는 프로젝트별로 독립된 Python 환경을 만들어 의존성 충돌 문제를 해결하는 도구이며, 특히 Python 3.3부터 표준 라이브러리에 포함된 공식 가상 환경 모듈입니다.
Venv 의 장단점은 다음과 같습니다.
venv의 장점
- 의존성 격리: 각 프로젝트마다 독립된 패키지 환경 구성 가능
- 버전 충돌 방지: 서로 다른 버전의 라이브러리가 필요한 프로젝트들 간 충돌 예방
- 시스템 Python 보호: 전역 Python 환경을 오염시키지 않음
- 쉬운 환경 복제: requirements.txt를 통해 동일한 환경 쉽게 재생성
- 표준 라이브러리: 별도 설치 없이 Python에 내장됨
venv의 단점
- 모든 프로젝트마다 패키지 재설치: 동일한 패키지도 가상환경마다 개별 설치 필요
- 디스크 공간 차지: 여러 가상환경이 동일한 패키지의 다른 복사본을 가질 수 있음
- 활성화/비활성화 필요: 사용 시 명시적으로 활성화 필요
- 복잡성 증가: 초보자에게는 추가적인 학습 필요
- Conda 등 다른 도구보다 기능 제한적: 비-Python 의존성 관리 기능 없음
명령어 소개
1. 가상환경 생성하기
# 기본 문법 # 예시: ‘myproject’ 이름의 가상환경 생성 |
2. 가상환경 활성화하기
Windows:
# CMD # PowerShell |
macOS/Linux:
source myproject/bin/activate |
활성화 후 명령 프롬프트 앞에 (myproject) 와 같이 가상환경 이름이 표시됩니다.
3. 패키지 설치 및 관리
# 패키지 설치 # 특정 버전 설치 # 여러 패키지 설치 # 설치된 패키지 목록 확인 # 설치된 패키지를 requirements.txt로 저장 # requirements.txt 파일로부터 패키지 설치 |
4. 가상환경 비활성화
deactivate |
5. 가상환경 삭제
단순히 가상환경 폴더를 삭제하면 됩니다:
# Windows # macOS/Linux |
해당 명령어에 대한 예시와 타 컴퓨터로 환경을 복제하는 방법은 다음과 같습니다.
실제 작업 흐름 예시
# 1. 새 프로젝트 디렉토리 생성 # 2. 가상환경 생성 # 3. 가상환경 활성화 # 4. 필요한 패키지 설치 # 5. 의존성 기록 # 6. 작업 완료 후 가상환경 비활성화 |
다른 컴퓨터에서 환경 복제하기
# 1. 프로젝트 클론 또는 다운로드 # 2. 새 가상환경 생성 # 3. 가상환경 활성화 # 4. 의존성 설치 # 5. 이제 프로젝트 실행 가능 |
이처럼 Python venv는 프로젝트별 의존성 관리를 단순화하고 일관된 개발 환경을 유지하는 데 매우 유용한 도구입니다.