DevToolBox무료
블로그

Python 가상 환경 가이드: venv, conda, pipenv, poetry

10분by DevToolBox

가상환경은 Python 의존성 관리의 기초입니다. 이 가이드는 네 가지 주요 도구인 venv, conda, pipenv, Poetry를 다룹니다.

가상환경이 중요한 이유

각 Python 프로젝트는 특정 버전 요구사항이 있는 자체 의존성을 가집니다. 가상환경은 프로젝트별로 격리된 Python 설치를 생성하여 이를 해결합니다.

venv: 내장 표준 라이브러리

venv는 Python 3.3+에 포함된 가장 간단한 옵션입니다.

# venv — Built-in (Python 3.3+)

# Create a virtual environment
python -m venv .venv

# Activate (macOS/Linux)
source .venv/bin/activate

# Activate (Windows)
.venv\Scripts\activate

# Install packages
pip install django requests

# Save dependencies
pip freeze > requirements.txt

# Install from requirements.txt
pip install -r requirements.txt

# Deactivate
deactivate

# Delete the environment
rm -rf .venv

# Recommended: add .venv to .gitignore
echo ".venv" >> .gitignore

Poetry: 현대적인 의존성 관리

Poetry는 가장 현대적이고 기능이 풍부한 Python 의존성 관리자입니다.

# Poetry — Modern Dependency Management (Recommended 2026)

# Install Poetry
curl -sSL https://install.python-poetry.org | python3 -

# Create a new project
poetry new my-project
cd my-project

# Add dependencies
poetry add django
poetry add --group dev pytest black ruff

# Install all dependencies (from poetry.lock)
poetry install

# Run commands in the virtual environment
poetry run python manage.py runserver
poetry run pytest

# Open a shell in the virtual environment
poetry shell

# Update dependencies
poetry update

# Export to requirements.txt (for compatibility)
poetry export -f requirements.txt --output requirements.txt

# Build and publish a package
poetry build
poetry publish

# Show dependency tree
poetry show --tree

# pyproject.toml (auto-generated)
# [tool.poetry]
# name = "my-project"
# version = "0.1.0"
# description = ""
# [tool.poetry.dependencies]
# python = "^>=3.11"
# django = "^>=5.0"
# [tool.poetry.group.dev.dependencies]
# pytest = "^>=8.0"

conda: 데이터 사이언스 강자

conda는 비Python 의존성도 설치할 수 있는 완전한 패키지 관리자입니다.

# conda — Data Science / ML (Anaconda/Miniconda)

# Install Miniconda (minimal)
# https://docs.conda.io/projects/miniconda/

# Create environment with specific Python version
conda create -n myproject python=3.11

# Activate environment
conda activate myproject

# Install packages (conda packages first)
conda install numpy pandas scikit-learn matplotlib

# Install packages not in conda
pip install some-pytorch-extension

# Export environment
conda env export > environment.yml

# Create from environment.yml
conda env create -f environment.yml

# List environments
conda env list

# Deactivate
conda deactivate

# Remove environment
conda env remove -n myproject

# Update conda
conda update conda

# environment.yml example:
# name: myproject
# channels:
#   - conda-forge
#   - defaults
# dependencies:
#   - python=3.11
#   - numpy=1.26
#   - pandas=2.1
#   - pip:
#     - custom-package==1.0

도구 비교

올바른 도구 선택은 사용 사례에 따라 다릅니다.

Tool        Installation  Lockfile  Non-Python  Build/Publish  Best For
------------------------------------------------------------------------
venv        Built-in      No        No          No             Simple scripts, learning
pipenv      pip install   Yes       No          No             Legacy projects
Poetry      curl install  Yes       No          Yes            General apps, libraries
conda       Installer     Yes       Yes         No             Data science, ML, AI
uv          cargo/pip     Yes       No          Yes            Fast pip replacement (2026)

자주 묻는 질문

2026년에 어떤 가상환경 도구를 사용해야 하나요?

일반 Python 개발과 웹 앱에는 Poetry를 사용하세요. 데이터 사이언스와 ML에는 conda를 사용하세요.

pip와 conda의 차이점은?

pip는 PyPI에서만 Python 패키지를 설치합니다. conda는 비Python 패키지도 설치할 수 있습니다.

conda 환경 내에서 pip를 사용할 수 있나요?

예, 하지만 주의가 필요합니다. pip와 conda를 혼용하면 충돌이 발생할 수 있습니다.

다른 개발자와 환경을 공유하는 방법은?

Poetry: pyproject.toml과 poetry.lock을 커밋. pip: requirements.txt. conda: environment.yml.

관련 도구

𝕏 Twitterin LinkedIn
도움이 되었나요?

최신 소식 받기

주간 개발 팁과 새 도구 알림을 받으세요.

스팸 없음. 언제든 구독 해지 가능.

Try These Related Tools

{ }JSON Formatter

Related Articles

Python 타입 힌트 완전 가이드: mypy, Protocols, 런타임 검증

Python 타입 힌트 마스터 2026: mypy 정적 검사, Protocol 정의, Pydantic 런타임 검증.

FastAPI 튜토리얼: 2026년 Python으로 REST API 구축

완전한 FastAPI 튜토리얼: 설정, 라우팅, 요청 검증, 인증, DB 통합, 배포.

Python 데코레이터 완전 가이드: 기초부터 고급까지

함수 데코레이터, 클래스 데코레이터, 인자 있는 데코레이터로 Python 데코레이터를 마스터하세요.