본문으로 건너뛰기
백엔드 기초집: 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 가상환경과 패키지 관리 미완료 상태