본문 바로가기

Python/가상환경

가상환경 종류 (Anaconda, venv, virtualenv, pipenv, poetry, pdm)

파이썬 공부

개발자로 취업하여 입사하기 전에 6개월 자바교육을 이수했지만 CCTV 관련 직무를 배정받아 다시 Python으로 되돌아왔다.

Java를 잘 모르기에 Python을 사용해서 다행이라고 생각하다가도 CV직무라서 걱정이 되기도 하지만,

어쩌겠어 열심히 해봐야지!! 그런 마음으로 파이썬 기초부터 공부하며 기록하고자 한다.

 

 

가상환경에 대해 공부하게 된 이유

나는 교육, 프로젝트에서 데이터, AI 관련 분야 개발을 아나콘다 환경에서 해왔다. 그래서 아나콘다 가상환경을 사용했는데, 이게 웬걸?? 아나콘다는 무료 상용화가 되지 않기 때문에 회사에서 사용이 불가하다는 이야기를 들었다.

 

그래서 파이썬 내장 모듈 venv를 활용해서 사용하려고 했는데 다른 프로님께서 속도가 느려 추천하지 않는다는 말을 듣고 고민에 빠졌다. 내가 알고 있는 가상환경이 생각보다 다양하다는 것을 알고 알아보게 되었다. 

 

 

가상환경 도구 종류

1. conda

데이터, 머신러닝, 딥러닝을 하는 사람들에게 가장 익숙한 아나콘다 가상환경이다. 데이터 과학 패키지들이 사전 설치되어 있어 관련 작업을 쉽게 시작할 수 있지만, 기본 설치 패키지가 크고 무겁다는 단점이 있다.

 

2. venv

Python 개발에서 가장 많이 쓰이는 기본 가상환경이다. virtualenv 핵심 기능을 가져와 내장 모듈로 만들어 사용하기 쉽고 경량화되어있다. 하지만 기능이 약간 부족하고 virtualenv에 비해 속도가 약간 느리다.

 

3. virtualenv

가상환경 관리를 위해 만들어진 도구로서, venv보다 속도가 약간 빠르고 특정 버전에 따라 가상환경을 생성할 수 있는 장점이 있다.

 

4. pipenv

pip + virtualenv 를 결합하여 가상환경의 패키지 의존성을 관리하는 도구이다. 하지만 기능이 제한적이며 속도가 느릴 뿐만 아니라 버그로 인해 사용량이 감소하고 poetry로 대체되는 트렌드이다. 

 

5. poetry

최근에 등장한 가상환경 관리 도구로 pipenv와 유사하지만 빌드, 테스트, 배포 등 다양한 기능을 제공한다. 다양한 역할을 하는 만큼 설정, 학습이 어려워 진입 장벽이 높지만, 전체 프로젝트 관리 도구의 표준이 되어가고 있다.

 

6. pdm

npm 스타일 개발할 수 있는 프로젝트 도구(가상환경 + 패키지 + 실행 + 빌드)

 

 

 

사실 4, 5, 6번은 가상환경 도구라기보다는 가상환경 기능을 갖추고 있는 프로젝트 관리 도구이다. 우선 빌드, 배포는 추후에 생각하기로 하고 venv 보다 기능이 다양하고 성능이 우수한 virtualenv를 실습할 예정이다.

 

'Python > 가상환경' 카테고리의 다른 글

가상환경 구축(with virtualenv)  (0) 2025.06.08