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 기반 빌드 시스템을 사용할 경우 필수이며, 최신 표준으로 권장됩니다.