
Packaging 이란 모듈별로 생성한 파일을 하나로 합쳐서 배포하는 것으로 코드 뿐만 아니라 dependency, testing, lint, build, deployment 등을 포함한 포괄적인 개념이다.
requests 에서는 패키징을 위한 파일로 setup.py, setup.cfg, pyproject.toml, requirements-dev.txt, tox.ini 등이 있다. setup.py 를 통해 라이브러리의 기본적인 메타데이터를 확인할 수 있으며 requests 를 사용하기 위한 의존성이 명시된다. 만약 테스트를 원할 경우 requirements-dev.txt 를 통해 개발에 필요한 의존성을 설치한다. tox.ini 는 다양한 파이썬 버전의 가상 환경을 만들어 테스트를 돕는다. 이때 requirements-dev.txt 를 참고해 가상환경에 필요한 의존성을 자동으로 설치한다.
# development(test 등) 을 위한 의존성 설치
pip install .
pip install -r requirements-dev.txt
# 다양한 버전의 파이썬 버전으로 테스트를 하고 싶을시
pip install tox
tox
이전에는 패키징 방식으로 setup.py 와 setup.cfg 의 조합을 사용했으나, pypa 에서는 선언적으로 패키징 방식을 정의할 수 있는 pyproject.toml 을 주로 사용할 것을 권장하고 있다. requests 의 경우 14년이나 된 오래된 라이브러리이면서 추가적인 feature request를 더 이상 받고 있지 않기 때문에 아직 setup.py 를 그대로 사용하고 있다(패키징 코드를 setup.py 에서 pyproject.toml 로 완전히 이동하지 않아 pyproject.toml 만으로 패키징은 현재 불가능하다.)