Python 환경 설정 완벽 가이드 - glasslego/getting-started-with-python GitHub Wiki
pyenv, poetry, uv를 이용한 Python 개발 환경 통합 세팅 튜토리얼
🤔 왜 환경 설정이 필요한가?
🔥 문제 상황
- 프로젝트마다 다른 Python 버전을 요구
- 패키지 충돌 (예: numpy 1.20 vs 1.24)
- 시스템 전역 Python을 건드려 OS 오류 발생
✅ 해결책
pyenv
: Python 버전 관리poetry
: 가상환경 + 의존성 관리uv
: 둘 다 통합한 초고속 솔루션
🐍 pyenv - Python 버전 관리
pyenv란?
- 여러 버전의 Python을 쉽게 설치하고 전환 가능
- 프로젝트 단위로 Python 버전 고정 가능
설치 (macOS 기준)
brew install pyenv
echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.zshrc
echo 'command -v pyenv >/dev/null || export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.zshrc
echo 'eval "$(pyenv init -)"' >> ~/.zshrc
source ~/.zshrc
# 사용 예시
pyenv install 3.11.7
pyenv install 3.9.18
pyenv global 3.11.7
pyenv local 3.9.18
poetry - 패키지 및 의존성 관리
poetry란?
- Python 패키지 관리 도구
- 가상환경 자동 생성 + 프로젝트별 의존성 관리
# 설치
curl -sSL https://install.python-poetry.org | python3 -
curl -ksSL https://install.python-poetry.org | python3 -
# sudo /Applications/Python\ 3*/Install\ Certificates.command
# export SSL_CERT_FILE=$(python3 -m certifi)
# echo 'export PATH="$HOME/.local/bin:$PATH"' >> ~/.zshrc
# source ~/.zshrc
poetry config virtualenvs.in-project true
# 사용 예시
poetry new my-app
poetry add requests pandas
poetry add pytest black --group dev
poetry shell
poetry run python main.py
pyproject.toml 예시
[tool.poetry.dependencies]
python = "^3.9"
requests = "^2.31.0"
pandas = "^2.0.0"
[tool.poetry.group.dev.dependencies]
pytest = "^7.0.0"
black = "^23.0.0"
uv - 올인원 도구
uv란?
- Rust 기반 초고속 Python 환경관리 툴
- pyenv + poetry 기능 통합, 최대 100배 빠름
curl -LsSf https://astral.sh/uv/install.sh | sh
# 주요 명령어
uv init my-app
uv python install 3.11.7
uv python pin 3.11.7
uv add requests pandas
uv add pytest black --dev
uv run python main.py