파이썬 가상환경은 프로젝트마다 라이브러리 버전을 따로 관리하기 위한 격리 공간입니다. 이 글은 입문자가 가장 헷갈리는 venv, conda, uv 세 가지의 차이와 어떤 상황에 뭘 골라야 하는지를 정리합니다. 처음 파이썬을 배울 때 저도 그냥 pip install만 남발했다가, 프로젝트 두 개가 서로 다른 버전을 요구하면서 전부 꼬여버린 적이 있습니다. 그 뒤로 새 프로젝트는 무조건 가상환경부터 만드는 습관이 생겼어요. 도구 이름이 여러 개라 무섭게 느껴지지만, 핵심 원리는 하나라 한 번 감을 잡으면 나머지는 따라옵니다.

가상환경이 뭐길래 자꾸 만들라고 하는가
파이썬 가상환경은 한 컴퓨터 안에 여러 개의 독립된 파이썬 작업 공간을 만들어 주는 장치입니다. 프로젝트마다 필요한 라이브러리 버전이 다를 때, 서로 부딪히지 않도록 방을 나눠주는 셈입니다.
비유하자면 요리와 비슷합니다. 김치찌개용 도마와 케이크용 도마를 따로 두는 것과 같은 이치예요. 같은 부엌(내 컴퓨터)을 쓰지만, 도구는 분리해두는 겁니다.
가상환경 없이 그냥 설치하면 이런 일이 벌어집니다.
- A 프로젝트: 최신 버전 라이브러리가 필요함
- B 프로젝트: 옛날 버전이어야 돌아감
- 하나를 업그레이드하면 다른 하나가 깨짐
실제로 데이터 분석용 노트북 하나 만들다가, 회사 협업용 코드가 안 돌아가서 반나절을 날린 적이 있습니다. 그때부터 "가상환경 먼저"가 몸에 뱄습니다.
💡 결론부터 말하면 어떤 도구든 좋으니 프로젝트마다 하나씩 만드세요. 안 쓰는 것보다 뭐라도 쓰는 게 훨씬 낫습니다.
venv, conda, uv 한눈에 비교
세 도구는 목적이 조금씩 다릅니다. 표로 먼저 감을 잡아보겠습니다.
| 도구 | 설치 | 강점 | 약점 | 추천 대상 |
|---|---|---|---|---|
| venv | 파이썬 설치 시 자동 포함 | 별도 설치 불필요, 표준 | 파이썬 버전은 못 바꿈 | 웹 개발, 일반 스크립트 |
| conda | Anaconda/Miniconda 별도 설치 | 파이썬 버전까지 관리, 과학·데이터 특화 | 용량 크고 느림 | 데이터분석, 머신러닝, 연구 |
| uv | 별도 설치 (2024년 등장) | 매우 빠름, 최신 방식 | 새 도구라 자료 적음 | 속도가 중요한 신규 프로젝트 |
여기서 핵심은 "venv는 이미 깔려있다"는 점입니다. 파이썬만 설치했다면 이미 씁니다. conda와 uv는 별도 프로그램을 깔아야 하고요.
venv — 가장 먼저 시도할 기본기
venv는 파이썬에 기본 내장된 가상환경 도구입니다. 파이썬 3.3 이상이면 아무것도 추가로 설치하지 않고 바로 씁니다.
터미널(검은 화면에 명령어를 입력하는 프로그램. 맥은 "터미널", 윈도우는 "명령 프롬프트" 또는 "PowerShell")을 열고 아래를 입력합니다.
python -m venv myenv
이 명령은 "현재 폴더에 myenv라는 이름의 가상환경 방을 만들어줘"라는 뜻입니다. 실행하면 폴더 안에 myenv라는 새 디렉터리가 하나 생깁니다.
만든 다음에는 활성화(activate) 를 해야 그 방에 들어간 상태가 됩니다.
# 맥/리눅스 source myenv/bin/activate # 윈도우 (PowerShell) myenv\Scripts\Activate.ps1
활성화되면 터미널 앞에 (myenv)라는 표시가 붙습니다. 이 상태에서 pip install로 뭘 설치하든 전부 이 방 안에만 저장돼요. 방을 나갈 때는 deactivate만 입력하면 됩니다.
처음 써보면 "이게 다야?" 싶을 만큼 단순합니다. 저도 예전엔 뭔가 대단한 설정이 필요한 줄 알고 지레 겁먹었는데, 사실은 폴더 하나 만드는 수준이었어요.
venv가 안 어울리는 경우
venv는 이미 컴퓨터에 설치된 파이썬 버전을 그대로 씁니다. 즉, 파이썬 3.11이 깔려있으면 어떤 가상환경을 만들어도 3.11입니다.
프로젝트마다 파이썬 버전 자체(3.9 vs 3.12 등)를 다르게 쓰고 싶다면 venv만으로는 부족합니다. 이때는 conda나 pyenv 같은 도구를 함께 씁니다.
conda — 데이터·머신러닝 하는 분들의 표준
conda는 파이썬 버전과 라이브러리를 한꺼번에 관리하는 종합 도구입니다. 특히 넘파이, 판다스, 텐서플로우처럼 내부에 C·포트란 코드가 섞인 무거운 라이브러리를 설치할 때 훨씬 안정적입니다.
conda를 쓰려면 먼저 Miniconda 또는 Anaconda를 설치해야 합니다. 초보자라면 가벼운 Miniconda(약 400MB)를 권합니다. Anaconda는 자주 쓰는 데이터 도구를 미리 다 포함하고 있어서 3GB가 넘어갑니다.
설치 후 사용법은 이렇습니다.
conda create -n myenv python=3.10 conda activate myenv
첫 줄은 "python 3.10 버전으로 myenv라는 방을 만들어줘"라는 뜻입니다. venv와 달리 파이썬 버전까지 지정할 수 있어요. 두 번째 줄로 그 방에 들어갑니다.
💡 대학원생·연구실·캐글 실습 등 데이터 쪽 커뮤니티에서 conda 사용법 자료를 압도적으로 많이 볼 수 있습니다. 이 분야라면 그냥 conda로 시작해도 무방합니다.
conda의 아쉬운 점
솔직히 conda는 느립니다. conda install 한 번에 몇 분씩 기다린 적이 한두 번이 아닙니다. 최근에는 mamba라는 conda 호환 고속 도구도 나왔지만, 초보자에겐 도구가 하나 더 늘어나는 셈이라 부담스럽죠.
또 conda 채널(라이브러리 저장소)과 pip 저장소가 달라서, 같은 라이브러리인데도 conda에는 없고 pip에만 있는 경우가 생깁니다. 이때 섞어 쓰다가 환경이 꼬이는 사례를 자주 봤습니다.
uv — 요즘 뜨는 초고속 신인
uv는 2024년 초 Astral 사가 공개한 매우 빠른 파이썬 패키지·환경 관리 도구입니다. Rust라는 언어로 만들어져서, 기존 pip이나 venv보다 10~100배 빠르다고 공식 소개에서 이야기합니다.
체감상도 확실히 빠릅니다. 라이브러리 수십 개짜리 프로젝트를 새로 세팅할 때, pip으로는 2~3분 걸리던 게 uv로는 몇 초 만에 끝나는 경우도 있었습니다.
설치는 한 줄이면 됩니다.
# 맥/리눅스 curl -LsSf https://astral.sh/uv/install.sh | sh # 윈도우 (PowerShell) powershell -c "irm https://astral.sh/uv/install.ps1 | iex"
가상환경 만들기도 간단합니다.
uv venv source .venv/bin/activate # 맥/리눅스
명령어 자체는 venv와 거의 닮았습니다. 다만 뒤에서 훨씬 똑똑하게 캐싱하고 병렬 처리해서 속도가 붙는 구조입니다.
uv를 지금 도입해도 될까
솔직한 후기로는 "신규 개인 프로젝트라면 적극 추천, 팀 프로젝트라면 신중히" 입니다. 새 도구라서 한글 자료가 아직 적고, 회사에서 다 같이 쓰던 도구를 바꾸려면 설득이 필요하거든요.
혼자 실습·사이드 프로젝트 용도라면 지금 시작해도 큰 무리 없습니다. 명령어가 pip·venv와 워낙 비슷해서, 나중에 다른 도구로 옮겨가도 학습 손실이 거의 없어요.
그래서 나는 뭘 써야 할까
상황별로 이렇게 나누는 편이 가장 실용적입니다.
| 상황 | 추천 |
|---|---|
| 파이썬 처음, 뭐든 그냥 해보고 싶다 | venv (이미 깔려있음) |
| 데이터 분석·머신러닝 강의 따라간다 | conda (강의 자료가 대부분 conda 기준) |
| 웹 개발·API 서버·자동화 스크립트 | venv 또는 uv |
| 속도가 답답하고 새 도구에 열려있다 | uv |
| 팀 프로젝트, 다른 팀원이 이미 뭔가 쓰고 있다 | 팀 규칙 따라감 |
가장 흔한 실수는 "세 개 다 깔아놓고 상황마다 왔다갔다"입니다. 처음엔 하나만 정해서 3~4개 프로젝트를 만들어보는 편이 훨씬 낫습니다. 도구가 다른 것보다, 가상환경 자체에 익숙해지는 게 백배 중요하거든요.
자주 막히는 부분
활성화 명령이 안 먹힘 (윈도우): PowerShell에서 Activate.ps1을 실행할 때 보안 정책 때문에 막히는 경우가 많습니다. 이때는 PowerShell을 관리자 권한으로 열고 Set-ExecutionPolicy -Scope CurrentUser RemoteSigned를 한 번 입력하면 풀립니다.
(myenv) 표시가 안 뜸: 활성화 명령을 실행했는데도 프롬프트 앞에 이름이 안 붙는다면, 대개 다른 셸을 쓰고 있거나 경로가 잘못된 경우입니다. which python(맥/리눅스) 또는 where python(윈도우)으로 지금 쓰는 파이썬 경로를 확인해보세요. 가상환경 폴더 안 경로가 나오면 정상입니다.
깃허브에 가상환경 폴더까지 올라감: myenv 같은 가상환경 폴더는 용량도 크고 컴퓨터마다 내용이 달라져서, 코드 저장소에 올리면 안 됩니다. .gitignore 파일에 폴더 이름을 한 줄 추가해두세요. 저도 처음 협업할 때 이걸 몰라서 수백 MB짜리 폴더를 통째로 올린 적이 있습니다.
마무리
세 도구를 다 완벽히 알 필요는 없습니다. 처음이라면 venv 하나로 충분하고, 데이터 쪽 강의를 듣는다면 conda로 맞추면 됩니다. 속도가 답답해질 때쯤 uv를 시도해봐도 늦지 않아요.
가장 중요한 건 "프로젝트 만들면 가상환경부터" 라는 습관입니다. 이거 하나만 몸에 붙어도, 나중에 라이브러리 충돌로 밤샐 일이 확 줄어듭니다.
다음 단계로는 requirements.txt나 pyproject.toml 같은 의존성 기록 파일을 다뤄보시길 권합니다. 가상환경과 짝을 이루는 개념이라, 이 둘을 같이 익히면 파이썬 프로젝트 관리의 기본기가 완성됩니다.
함께 보면 좋은 글
'개발 & 기술 > 기타 언어' 카테고리의 다른 글
| 파이썬 pip 설치 오류 해결 7가지 — 맥·윈도우 초보용 (0) | 2026.07.10 |
|---|---|
| Go 5분 입문 — 왜 백엔드는 자꾸 Go로 가나 (0) | 2026.06.26 |
| Zig 언어가 뭔가요 — Rust 다음 후보 5분 정리 (0) | 2026.06.24 |
| Python 5분 입문 — 비개발자 첫 코드 가이드 (1) | 2026.06.20 |
| Rust 5분 입문 — 왜 다들 Rust로 갈아타나 (0) | 2026.06.12 |