- Published on
11단계: 가상환경과 패키지 관리
11-1. 가상환경이란?
가상환경은 프로젝트별로 독립된 Python 패키지 환경을 제공하여, 패키지 충돌을 방지하고 관리 효율을 높입니다.
11-2. venv로 가상환경 생성
python -m venv venv
venv/
폴더가 생성됨
11-3. 가상환경 활성화
Windows:
venv\Scripts\activate
macOS/Linux:
source venv/bin/activate
비활성화는 deactivate
11-4. pip으로 패키지 설치
pip install requests
pip uninstall requests
pip list
11-5. requirements.txt로 의존성 관리
pip freeze > requirements.txt
pip install -r requirements.txt
- freeze는 현재 설치된 패키지를 저장
- install -r로 동일 환경 재구성 가능
11-6. setup.py와 pyproject.toml
패키지를 배포할 경우 아래 구성 파일이 필요합니다.
setup.py
from setuptools import setup
setup(
name="mypackage",
version="0.1.0",
install_requires=["requests"]
)
pyproject.toml (권장)
[project]
name = "mypackage"
version = "0.1.0"
dependencies = ["requests"]
11-7. pip 업그레이드
pip install --upgrade pip
요약
- venv로 독립적인 가상환경 구성
- pip으로 패키지 설치, 제거, 목록 확인
- requirements.txt로 협업 환경 통일 가능
- 배포 시 setup.py 또는 pyproject.toml 사용 권장
심화학습
Q1. 가상환경 없이 개발하면 어떤 문제가 생기나요?
A1. 전역 설치된 패키지가 충돌하거나, 프로젝트마다 버전이 달라 실행 오류가 발생할 수 있습니다.
Q2. pip freeze와 pip list의 차이는?
A2. freeze
는 정확한 버전 고정 형식으로 출력되어 requirements.txt
저장에 적합합니다.
Q3. pyproject.toml은 어떤 경우 필수로 사용되나요?
A3. Poetry, PEP 517/518 기반 빌드 시스템을 사용할 경우 필수이며, 최신 표준으로 권장됩니다.