한양과학기술고등학교

에듀테크 프로젝트 대시보드

가상환경 · pip

venv pip requirements.txt isolation

프로젝트마다 독립된 파이썬 환경을 만들어 패키지 버전 충돌을 막습니다.

1. 가상환경 만들고 켜기

# 생성 (폴더 이름은 관례상 venv 또는 .venv)
python3 -m venv venv

# 활성화
source venv/bin/activate        # Linux / macOS
venv\\Scripts\\activate           # Windows

# 확인 — 프롬프트 앞에 (venv), which python 이 venv 안을 가리킴
deactivate                      # 비활성화

2. pip 기본

pip install requests
pip install "django>=4,<5"
pip install requests==2.31.0
pip install -U requests          # 업그레이드
pip uninstall requests
pip list                         # 설치 목록
pip show requests                # 상세 정보

3. requirements.txt

# 현재 환경을 파일로 고정
pip freeze > requirements.txt

# 다른 환경에서 그대로 재현
pip install -r requirements.txt

# requirements.txt 예시
#   fastapi==0.110.0
#   uvicorn[standard]>=0.29
#   requests

4. 이 서버에서의 실제 흐름

cd /home/ubuntu/offset0xf/school
source venv/bin/activate
pip install -r requirements.txt
# 코드 수정 후
sudo systemctl restart fastapi-school

5. 도구 비교

환경·패키지 관리 도구
  • venv + pip: 표준 내장, 대부분 충분
  • uv: 훨씬 빠른 설치·해석 (pip 호환), 최근 인기
  • poetry / pipenv: 의존성 잠금·배포 통합
  • conda: 과학 계산·비파이썬 의존성

6. 주의

함정
  • 가상환경 활성화를 잊고 pip install → 시스템 전역이 오염 (또는 권한 오류)
  • venv/ 폴더는 .gitignore 에 — 커밋하는 건 requirements.txt
  • sudo pip install 은 피하기
"지금 하는 것이 아예 안 하는 것보다 낫다 — 다만 '지금 당장'보다는 낫지 않을 때가 많다"