본문으로 건너뛰기
백엔드 기초집: Python FastAPILESSON 02

Python 가상환경과 패키지 관리

난이도초급
예상 시간35분
선수지식이전 강의

2강. Python 가상환경과 패키지 관리

1. 이번 강의에서 해결할 문제

컴퓨터 전체에 패키지를 설치하면 프로젝트마다 필요한 버전이 충돌합니다. game-ranking-api 전용 가상환경과 의존성 파일을 만듭니다.

2. 학습 목표

3. 핵심 개념

가상환경은 프로젝트 전용 Python 실행 파일과 설치 경로를 만듭니다. Python 3.13의 venv는 기본적으로 .gitignore도 생성합니다. 활성화는 편의 기능이며, 문제가 생기면 .venv\Scripts\python.exe처럼 실행 파일을 직접 호출할 수 있습니다. 공식 설치 방식은 fastapi[standard] 계열이며 이 과정은 Cloud CLI를 제외한 표준 의존성으로 Uvicorn, HTTPX, form parsing을 함께 설치합니다.

4. 단계별 코드 예시

파일 경로: game-ranking-api/requirements.txt

requirements.txt
fastapi[standard-no-fastapi-cloud-cli]
pydantic>=2,<3
sqlalchemy>=2,<3
python-dotenv>=1,<2
alembic
psycopg[binary]>=3,<4
pwdlib[argon2]
pyjwt
pytest
httpx

파일 경로: game-ranking-api/.gitignore

.gitignore
.venv/
__pycache__/
*.py[cod]
.env
*.db
.pytest_cache/

실행 위치: game-ranking-api/

py -3.13 --version
py -3.13 -m venv .venv
.\.venv\Scripts\Activate.ps1
python -m pip install --upgrade pip
python -m pip install -r requirements.txt
python -m pip check

macOS와 Linux에서는 source .venv/bin/activate를 사용합니다.

5. 코드가 동작하는 이유

python -m pip는 현재 선택된 Python에 패키지를 설치합니다. >=2,<3은 Pydantic과 SQLAlchemy의 현재 주 버전을 유지하면서 호환되는 수정 버전을 받을 수 있게 합니다. 실제 배포 재현이 필요할 때 검증된 환경에서 python -m pip freeze > requirements.lock.txt로 잠급니다.

6. 자주 하는 실수와 해결법

7. 직접 실습

8. 이해 점검 질문 3개

9. 핵심 요약

MINI QUIZ

Python 가상환경과 패키지 관리 미니 퀴즈

선택 즉시 정답과 해설을 확인할 수 있습니다. 결과는 이 브라우저에만 저장됩니다.

0 / 2
  1. 문제 1“Python 가상환경과 패키지 관리” 코드 리뷰에서 유지해야 할 설계 원칙은 무엇인가요?
  2. 문제 2‘pip가 전역 Python을 가리킵니다.’ 실수를 판단할 때 “Python 가상환경과 패키지 관리” 강의가 제시한 기준은 무엇인가요?
LESSON STATUS

학습을 마쳤나요?

직접 실습과 점검 질문까지 확인한 뒤 완료로 표시하세요.

2강. Python 가상환경과 패키지 관리 미완료 상태