파이썬 가이드 16 가상 환경
파이썬으로 여러 프로젝트를 진행하다 보면 "어? 이 프로젝트에선 requests 1.0 버전이 필요한데, 저 프로젝트는 2.0 버전이 필요하네?" 하는 상황을 마주하게 됩니다. 시스템에 설치된 파이썬과 라이브러리를 모든 프로젝트가 공유해서 쓰다 보면 이런 의존성 충돌 문제가 발생하기 쉽습니다.
이 문제를 해결해 주는 것이 바로 가상 환경(Virtual Environment)입니다. 가상 환경은 프로젝트별로 독립된 격리된 공간을 만들어, 각 공간마다 필요한 파이썬 버전과 라이브러리를 자유롭게 설치할 수 있도록 돕습니다.
1. venv: 파이썬의 표준, 가장 기본적인 선택
venv는 파이썬 3.3 버전부터 기본적으로 내장된 가상 환경 도구입니다. 별도의 설치가 필요 없어 가장 쉽고 빠르게 사용할 수 있다는 것이 큰 장점입니다. 특별한 기능이 필요 없다면 venv만으로도 충분합니다.
- 별도의 설치 없이 가볍게 시작하고 싶을 때
- 표준 파이썬 프로젝트 환경을 구성할 때
간단 사용법:
<!-- -->
# "my_project_env"라는 이름의 가상 환경 생성
python -m venv my_project_env
<!-- -->
# 가상 환경 활성화 (Windows)
my_project_env\Scripts\activate
<!-- -->
# 가상 환경 활성화 (macOS/Linux)
source my_project_env/bin/activate
활성화되면 터미널 프롬프트 앞에 (my_project_env)와 같이 가상 환경 이름이 표시됩니다.
2. Conda: 데이터 과학자를 위한 올인원 솔루션
Conda는 단순히 파이썬 패키지만 관리하는 것을 넘어, C/C++, R 등 파이썬이 아닌 다른 언어의 라이브러리까지 한 번에 관리할 수 있는 강력한 패키지 및 환경 관리자입니다. 특히 데이터 과학 분야에서 NumPy, SciPy처럼 복잡한 의존성을 가진 패키지를 설치할 때 빛을 발합니다.
- 데이터 분석, 머신러닝 등 과학 컴퓨팅 프로젝트를 진행할 때
- 파이썬 외의 다른 언어 라이브러리와의 의존성 관리가 필요할 때
- 아나콘다(Anaconda) 배포판을 사용하고 있을 때
간단 사용법:
<!-- -->
# "data_env"라는 이름으로 python 3.9 버전의 가상 환경 생성
conda create --name data_env python=3.9
<!-- -->
# 가상 환경 활성화
conda activate data_env
3. Virtualenv: 전통의 강자, 유연한 선택지
virtualenv는 venv가 파이썬에 내장되기 전부터 오랫동안 사용되어 온 원조 가상 환경 도구입니다. venv보다 더 많은 기능과 옵션을 제공하며, 오래된 파이썬 버전도 지원한다는 장점이 있습니다.
venv를 지원하지 않는 구버전 파이썬을 사용해야 할 때venv보다 더 세밀한 설정이나 기능이 필요할 때
간단 사용법:
<!-- -->
# virtualenv 설치
pip install virtualenv
<!-- -->
# "legacy_env"라는 이름의 가상 환경 생성
virtualenv legacy_env
<!-- -->
# 활성화 방법은 venv와 동일합니다.
source legacy_env/bin/activate
4. uv: 신흥 강자, 압도적인 속도
uv는 최근 등장한 차세대 파이썬 패키징 도구로, Rust로 개발되어 압도적으로 빠른 속도를 자랑합니다. 기존의 pip, venv를 대체하는 것을 목표로 하며, 패키지 설치와 가상 환경 생성이 수십 배 빨라 개발 경험을 쾌적하게 만들어줍니다.
- 매우 큰 프로젝트에서 의존성 설치 시간을 단축하고 싶을 때
- 최신 기술을 사용해 빠른 개발 환경을 구축하고 싶을 때
간단 사용법:
<!-- -->
# uv 설치 (macOS/Linux)
curl -LsSf https://astral.sh/uv/install.sh | sh
<!-- -->
# "fast_env"라는 이름의 가상 환경 생성 및 활성화
uv venv fast_env
source fast_env/bin/activate
프로젝트의 성격에 맞추어 필요한 도구를 선택하세요. 깔끔하고 안정적인 개발 환경을 구축하기 위해서는 가상 환경을 적극 사용해야 합니다.