Python 개발환경은 “설치가 됐다”로 끝나지 않습니다. 프로젝트마다 Python 버전이 다르고, 패키지 의존성이 꼬이고, VSCode에서 인터프리터가 바뀌지 않아 시간만 날리죠.
이 글은 2026 기준으로 Python 개발환경을 가장 많이 쓰는 3가지 축인 pyenv, conda, uv로 나눠서 비교하고, 초보가 덜 헤매는 조합을 “바로 따라 하는 체크리스트” 형태로 정리합니다.
결론 먼저: 초보는 ‘하나만 고르기’보다 ‘역할 분리’가 덜 막힙니다
Python 개발환경에서 가장 큰 함정은 “도구 하나로 다 해결”을 기대하는 겁니다. 실제로는 역할이 다릅니다.
- pyenv: “Python 버전 설치/전환”에 강함(프로젝트별 버전 맞추기)
- conda: “환경 + 바이너리(특히 과학/ML)”까지 묶어서 안정적으로 관리
- uv: “가상환경 + 패키지 설치/해결”을 빠르게(요즘 가장 가볍게 쓰기 좋음)
pyenv vs conda vs uv 한눈에 비교표(2026)
| 도구 | 한 줄 정의 | 강점 | 약점/주의 | 추천 대상 |
|---|---|---|---|---|
| pyenv | Python 버전 매니저 | 프로젝트별 Python 버전 고정, 전환이 명확 | 빌드 의존성(특히 macOS)에서 막힐 수 있음, 패키지 관리는 별도(pip/uv 등) | 웹/백엔드/스크립트, “버전 맞추기”가 잦은 사람 |
| conda | 환경 + 패키지(바이너리 포함) 매니저 | 과학/데이터/ML에서 의존성 충돌이 덜함, 환경 재현(yml) 쉬움 | 용량 큼, 느리게 느껴질 수 있음, 순수 pip 생태계와 섞을 때 규칙 필요 | 데이터분석/ML, 복잡한 라이브러리(예: CUDA, 과학 스택) 중심 |
| uv | 초고속 패키지/프로젝트 도구(+가상환경) | 설치/해결 속도 빠름, venv 기본 흐름이 깔끔 | 팀 표준이 아직 pip/poetry/conda일 수 있어 “프로젝트 규칙”을 정해야 함 | 초보~실무 모두, “가볍고 빠른 기본 세팅” 원하는 사람 |
초보 추천 조합 3가지(상황별로 바로 고르기)
조합 A) 가장 무난한 기본: pyenv + uv (추천 1순위)
“Python 버전은 pyenv로 고정”, “가상환경/패키지는 uv로 빠르게”가 가장 덜 꼬입니다. 특히 여러 프로젝트를 오가며 Python 개발환경을 깔끔하게 유지하기 좋아요.
- pyenv로 프로젝트 요구 버전 설치/선택
- uv로 프로젝트 폴더 안에 가상환경 생성 + 의존성 설치
- VSCode 인터프리터를 해당 venv로 지정(한 번만 해두면 편함)
조합 B) 데이터/ML 안정성 우선: conda(또는 mamba) 단독
데이터/ML은 “컴파일/바이너리”가 끼어들면서 충돌이 잦습니다. 이때는 conda가 시간 절약인 경우가 많습니다. 이 조합은 Python 개발환경을 “조금 무겁더라도 덜 깨지게” 만들고 싶을 때 적합합니다.
- 환경 생성:
conda create -n myenv python=3.11 - 활성화:
conda activate myenv - 공유:
conda env export > environment.yml
조합 C) 정말 빠르게 시작: uv 단독(프로젝트 기준)
요즘은 “일단 실행되는 개발환경”을 빨리 만들고 싶을 때가 많죠. 그런 경우 uv만으로도 충분히 시작 가능합니다. 다만 팀/회사 표준이 있는 경우는 그 규칙에 맞추는 게 더 중요합니다.
실전 설치/세팅: 막히는 지점만 콕 집어 정리
1) pyenv(버전 관리) 최소 세팅
pyenv의 핵심은 “Python을 여러 버전으로 설치하고, 프로젝트별로 고정”입니다. 예를 들어 프로젝트 루트에서 아래처럼 버전을 고정하면, 해당 폴더에 들어올 때 자동으로 맞춰집니다.
- 설치 확인:
pyenv --version - 설치 가능한 버전 목록:
pyenv install --list - 버전 설치:
pyenv install 3.12.2 - 프로젝트 고정:
pyenv local 3.12.2 - 현재 버전 확인:
python --version
2) conda(환경 + 패키지) 최소 세팅
conda는 “환경 자체가 하나의 폴더/세상”이라 생각하면 이해가 쉽습니다. 프로젝트별로 환경을 분리하면 충돌이 크게 줄어요.
- 환경 생성:
conda create -n py312 python=3.12 - 활성화:
conda activate py312 - 패키지 설치:
conda install numpy pandas - pip 혼용 시 원칙: conda로 큰 것 먼저(예: numpy), 나머지 pip/uv는 마지막
3) uv(가상환경 + 패키지) 최소 세팅
uv는 “프로젝트 폴더 안에서 가상환경을 만들고, 패키지를 빠르게 깔고, 실행까지” 흐름이 깔끔합니다. 초보가 Python 개발환경을 만들 때 가장 많이 막히는 지점(가상환경/경로/설치속도)을 확 줄여주는 편이에요.
- 설치 확인:
uv --version - 가상환경 생성(예):
uv venv - 가상환경 활성화(예): macOS/Linux
source .venv/bin/activate, Windows.venv\\Scripts\\activate - 패키지 설치(예):
uv pip install requests
VSCode에서 ‘인터프리터가 꼬이는’ 문제를 1분에 끝내는 법
VSCode에서 Python 개발환경이 자꾸 꼬이는 이유는 대부분 “인터프리터(파이썬 경로)”가 다르기 때문입니다. 아래 3가지만 확인하면 대부분 해결됩니다.
- Command Palette → “Python: Select Interpreter”에서 프로젝트 venv 선택
- 터미널에서
which python(mac) /where python(win)로 경로 확인 - 프로젝트 루트에
.venv를 두면 VSCode가 자동 인식하는 경우가 많음
추천 워크플로우(초보용): “새 프로젝트 만들 때” 체크리스트
- ① (가능하면) 프로젝트가 요구하는 Python 버전을 확인한다(README, pyproject.toml, .python-version 등)
- ② pyenv로 해당 버전을 맞춘다(없으면 설치)
- ③ uv로
.venv를 만들고 패키지를 설치한다 - ④ VSCode에서 인터프리터를
.venv로 고정한다 - ⑤ 팀 작업이면 “환경 재현 파일”(requirements 또는 pyproject/lock, conda yml)을 남긴다
FAQ: Python 개발환경에서 자주 막히는 질문 3가지
마무리: 오늘 설치를 “완료”가 아니라 “재현 가능”으로 끝내세요
좋은 Python 개발환경의 기준은 “지금 내 컴에서 된다”가 아니라, 내일도 되고, 다른 컴에서도 된다입니다. 오늘은 조합 A(pyenv + uv)로 시작하고, 데이터/ML로 넘어가면 conda로 갈아타는 흐름이 가장 흔하고 안전합니다.
0 댓글