venv 와 conda 중 어떤것을 택해야 하나?

개발을 진행 하다보면 가상환경을 사용해야하는 경우가 많이 있다.

예전에는 Vmware 나 Virtual Box 를 통해서 VM 을 만들고 그 안에서 진행하곤 했는데, 무겁고, 시간이 많이 소요된다.

물론 Snapshot 을 이용해서 오히려 더 편리할 수도 있다. Snapshot 으로 차근차근 가지쳐가며...

 

필자는 Linux 기반으로 신속하고 빠르게 반응 하고자 Python 기반의 venv 를 사용하곤 했다.

FastAPI 를 이용해서 간결한 Web Service 를 테스트 하기에 너무 좋기 때문이다.

 

하지만 요새 Huggingface 의 Model 들을 테스트 하다보니 conda 환경이 더 매력적이다.

Model 의 Sample 들이 conda 기반으로 되어 있는 경우도 많이 있다.

 

그래서 정리해 본다.

 

📊 venv vs conda 비교

  venv conda
설치 방식 파이썬 표준 라이브러리에 포함 (추가 설치 불필요) Anaconda/Miniconda 설치 필요
관리 범위 파이썬 패키지 격리만 지원 파이썬 버전 + 패키지 + CUDA/cuDNN 등 비파이썬 라이브러리까지 관리
지원 언어 파이썬 전용 파이썬, R, Julia 등 다양한 언어 지원
패키지 설치 pip install 사용, 의존성 충돌 가능 conda install 사용, 의존성 자동 해결
속도/무게감 가볍고 빠름, 최소한의 구성 무겁고 설치 속도 느림 (Anaconda는 3~5GB 이상)
편의성 CLI 중심, 수동 관리 필요 GUI(Anaconda Navigator) 제공, 직관적 관리
적합 분야 웹 개발, 자동화, 일반 프로그래밍 데이터 과학, 머신러닝, 복잡한 환경 관리

 

 

📊 주의할 점

  • venv 단점: 패키지 충돌 관리가 어렵고, 복잡한 환경에서는 버전 호환 문제가 발생할 수 있음.
  • conda 단점: 무겁고 설치 속도가 느리며, pip와 혼용 시 충돌 가능성이 있음.
  • 데이터 과학 프로젝트에서는 conda로 환경을 만들고, 부족한 패키지는 pip로 보완하는 방식이 흔히 사용됨.

 

사용법 : 생성, 활성화, 비활성화, 삭제

가. 🐍 venv (Python 내장 가상환경)

생성
# python -m venv myenv
# python3.12 -m venv myenv

활성화
# source myenv/bin/activate
# . myenv/bin/activate
W:\> myenv\Scripts\activate

비활성화
# deactivate

삭제
# rm -rf myenv
W:\> rmdir /s myenv

 

나. 📦 conda

생성
# conda create -n myenv python=3.10
# conda create -n myenv python=3.12

활성화
# conda activate myenv

비활성화
# conda deactivate

삭제
# conda remove -n myenv --all

 

개발 상황에 맞게 골라 쓰면 되겠다.