[Python 개발 필수 3대 도구 비교 정리: venv, pyenv, poetry]
1️⃣ 프로젝트 가상환경 설정 방식 비교
키워드 venv (기본) pyenv poetry (통합 도구)
설명 | 가상환경 수동 생성 | 파이썬 버전 관리 | 가상환경 + 패키지 + 배포 통합 도구 |
가상환경 | python -m venv venv | pyenv-virtualenv 이용 | 자동 생성 (init 시 생성됨) |
패키지 관리 | pip + requirements.txt | pip 사용 | poetry add, poetry.lock 자동관리 |
파이썬 버전 관리 | 불가 (OS 버전에 의존) | 다양한 버전 설치/관리 | 일부 가능 (내부 설정 지원) |
가상환경 사용 | source venv/bin/activate | pyenv local 3.12.0 등 | poetry shell, poetry run |
배포 기능 | ❌ | ❌ | ✅ PyPI 배포 지원 |
2️⃣ 언제 어떤 도구를 써야 할까?
상황 추천 도구
간단한 프로젝트, 실습용 | venv |
여러 파이썬 버전 전환이 필요할 때 | pyenv |
팀 프로젝트, 통합 개발 및 배포 | poetry |
pyenv + poetry 조합으로 버전까지 통합 관리하고 싶을 때 | pyenv + poetry |
3️⃣ 사용 예시 코드
venv 사용 예시
python -m venv .venv
source .venv/bin/activate
pip install django
pyenv 사용 예시
pyenv install 3.12.0
pyenv virtualenv 3.12.0 myenv
pyenv local myenv
poetry 사용 예시
poetry new myproject
cd myproject
poetry shell
poetry add django
poetry run python manage.py runserver
✅ 핵심 요약 정리
- venv: 기본 가상환경 생성 도구 (pip + 수동 환경)
- pyenv: 다양한 파이썬 버전 설치 및 관리 도구
- poetry: 가상환경 + 패키지 + 버전 관리 + 배포 통합 도구
💡 실무 팁: pyenv로 원하는 버전 설치 후, poetry로 환경을 구성하면 확장성과 유지보수 측면에서 효율적입니다.
'기술블로그-Django편' 카테고리의 다른 글
✅ Django 모델 필드 설정: null=True 와 blank=True 차이 완벽 정리 (0) | 2025.05.12 |
---|---|
✅ Django에서 사용자(User) 모델을 설정하는 3가지 방법과 사용법 정리 (0) | 2025.05.12 |
📌 IP 주소와 Port란? 인터넷 통신의 핵심 개념 시각화 정리 (0) | 2025.05.12 |
📌 Poetry vs pyenv 차이점 완전 정리 (0) | 2025.05.12 |
📌 Django REST Framework(DRF) 완전 정리: API 개발의 핵심 도구 (0) | 2025.05.12 |